关于一个调用webservices的问题
将webservices A 的DLL文件复制在webservices B的bin目录下面,并将A引用
因为B里面的方法要调用A里面的方法.
public DataSet SearchAlbum(string AlbumTitle)
{
DataSet ds;
string CompanyName;
int ProfitPerAlbum;
//DBService 就是DLL文件里的类
DBService Supplier = new DBService();
//执行Supplier.HasAlbum(AlbumTitle))的方法就出错,出错内容在下面.
if (Supplier.HasAlbum(AlbumTitle))
{
CompanyName = Supplier.GetCompany();
ProfitPerAlbum = GetProfit(CompanyName);
ds = Supplier.GetAlbumDetail(AlbumTitle,CompanyName);
foreach (DataRow eachrow in ds.Tables[CompanyName].Rows)
{
eachrow[ "Price "] = (Decimal)eachrow[ "Price "] +ProfitPerAlbum;
}
}
else
{
ds = new DataSet();
}
ds.AcceptChanges();
return ds;
}
现在运行B的方法 出现出错:
System.Net.WebException: 请求因 HTTP 状态 401 失败:Access Denied
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at DBService.HasAlbum(String AlbumTitle)
at Retailer.MusicCityServices.SearchAlbum(String AlbumTitle) in c:\inetpub\wwwroot\xxx\xxx.asmx.cs:line 68
是怎么回事啊? 高手速度帮个忙啊~~OTZ!!!!
[解决办法]
B里面的方法要调用A里面的方法.
----------------------------------
对webservice引用通常是通过wsdl文档,不能像类库工程那样用dll直接引用
两个webservice如果部署在一个站点完全可以放到一个工程中,那样在一个dll中就没有问题了
[解决办法]
A是另一个项目提供给B用的..
-------------------------------
先明确webservice的调用方式
a,b分别部署
在项目b中,添加web引用,url指向a
参考下msdn联机帮助中的webservice演练
ps:同学,你这是做毕业设计吧?
[解决办法]
ref:http://www.codeproject.com/cs/webservices/myservice.asp
[解决办法]
使用代理类!!
如果放在一个项目中引用WEBSERVICE 那还要它干嘛??
[解决办法]
2个WebService如果就算部署在同一台计算机上,如果A调用B其实不是本地对象调用,还是需要通过Soap转一次,因此LZ的例子应该在B中写一个A的代理类,然后再调用代理类。
还有一种作法,就是把公用的方法都放在第三个DLL中,这个DLL仅仅是一个普通的类库,不是WebService,那么本地调用就没有那么麻烦了。
[解决办法]
你是不是使用的是文件型的数据库,启动WebService 的用户 IWAM_MachineName对你的文件型数据库所在目录没有写的权限。
[解决办法]
帮你顶上去
[解决办法]
1.都调用同一个DLL
2.用代理类
[解决办法]
提示没有权限是不是有写入操作?
[解决办法]
顶下,几层调用