想深入学习一下webservice,求助!

rocky_wl 2008-06-25 07:10:39
本人对webservice有大致的了解,也会基本的使用,但都是参考了别人的。最近在部署一个webservice时掉了一个webservice地址的配置,查了半天原因,也问了别人,才知道还有个wsdl代理类这个东西,但是我的站点里没有用这种方法,而且我也不知道配置的地址在哪能用到。我也找了资料能通过VS的命令生成了这个类,但是webservice的机制还是不怎么了解,希望能得到大家的帮助让我了解一下webservice的机制,重点想知道wsdl代理类这个东西,大家有好的网上的资料,比如博客文章之类的推荐给我一下也行。谢谢!
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rocky_wl 2008-06-27
  • 打赏
  • 举报
回复
是不是添加代理类后直接调用代理类的方法,而无需再添加WEB引用了?
fengquansheng 2008-06-26
  • 打赏
  • 举报
回复
客户端代理类可以用工具生成也可以自已写,本人喜欢自已写,
只要继承这个类及可:System.Web.Services .Protocols.SoapHttpClientProtocol
例:
public class ClientProxy:System.Web.Services .Protocols.SoapHttpClientProtocol,IClientProxy
{
public SHeader _header;
public ClientProxy()
{
string urlSetting=System.Configuration .ConfigurationSettings.AppSettings["serverurl"].ToString();
if ((urlSetting != null))
{
this.Url = string.Concat(urlSetting, "");
}
_header=new SHeader();

_header.SN="111";

}


#region IClientProxy 成员

[System.Web.Services.Protocols.SoapHeaderAttribute("_header")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://orp.westerasoft.com/webservices/webservicemanage/RemoteActive", RequestNamespace="http://orp.westerasoft.com/webservices/webservicemanage", ResponseNamespace="http://orp.westerasoft.com/webservices/webservicemanage", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public string RemoteActive(string Sn, string info)
{
object[] results = this.Invoke("RemoteActive", new object[]{Sn,info});
string s=((string)(results[0]));
return s;
}

[System.Web.Services.Protocols.SoapHeaderAttribute("_header")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://orp.westerasoft.com/webservices/webservicemanage/CheckSn", RequestNamespace="http://orp.westerasoft.com/webservices/webservicemanage", ResponseNamespace="http://orp.westerasoft.com/webservices/webservicemanage", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public string CheckSn(string Sn)
{
object[] results = this.Invoke("CheckSn", new object[]{Sn});
string s=((string)(results[0]));
return s;

}
}

这里使用了head验证.
rocky_wl 2008-06-26
  • 打赏
  • 举报
回复
一般都是在站点里添加web引用,然后发布,是不是手动生成这个代理类后添加到站点里,调用这个代理类的方法也可以,而无需添加web引用了?
rocky_wl 2008-06-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 amandag 的回复:]
通过web引用会自动生成这个代理类,当然也可以使用命令行参数生成
[/Quote]

是不是项目里添加web引用和手动添加这个代理类两种方法选一种就行?
changjiangzhibin 2008-06-25
  • 打赏
  • 举报
回复
在网上搜一些源码和示例看看,会有帮助

再弄个项目练练手,基本OK
chaye12 2008-06-25
  • 打赏
  • 举报
回复
彼此彼此哈哈·1!
一品梅 2008-06-25
  • 打赏
  • 举报
回复
放进我的网摘.
amandag 2008-06-25
  • 打赏
  • 举报
回复
才知道还有个wsdl代理类这个东西,但是我的站点里没有用这种方法
==
通过web引用会自动生成这个代理类,当然也可以使用命令行参数生成

http://www.microsoft.com/china/MSDN/library/WebServices/default.mspx?mfr=true

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧