首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

关于一个调用webservices的有关问题

2012-02-09 
关于一个调用webservices的问题将webservicesA的DLL文件复制在webservicesB的bin目录下面,并将A引用因为B

关于一个调用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.用代理类
[解决办法]
提示没有权限是不是有写入操作?
[解决办法]
顶下,几层调用

热点排行