c# WebReference与ServiceReference 小结

两者在功能上没有区别,用法也几乎一样!

区别一:

WebReference是由wsdl.exe生成客户端代理的。生成webservice代理类的方法,即从System.Web.Services.Protocols.SoapHttpClientProtocol派生而来,代理类代码可以指定要访问的Url属性。
ServiceReference是由svcutil.exe生成客户端代理的。按照新的webservice客户访问机制WCF(不是直接从System.Web.Services.Protocols.SoapHttpClientProtocol派生而来)。代理类代码没有Url属性可指定,而是在客户端的配置文件app.config中指定endpoint来访问指定的url。
区别二:

WebReference生成的代理可以被.net1.1或.net2.0的客户端调用。
ServiceReference生成的代理只能被.net3.0+的客户端调用,而且ServiceReference后不仅生成代理类,在web.config中还会生成相应的Tag。(注:这里Tag显著表现为)
区别三:

WebReference的方式不能使用Wcf。(wcf需.net3.0的支持)
ServiceReference可以使用wcf。(需.net3.0+的客户端)
再谈谈使用时注意事项:
静态添加WebReference: 右击项目–》添加服务引用–》高级–》添加Web引用–》URL输入地址–》前往–》确定
静态添加ServiceReference: 右击项目–》添加服务引用–》地址–》转到–》确定
注意:上面的方法是在非启动项项目(比如某个类库)中添加的,在该项目下会自动生成一个app.config文件,而在主配置文件.config中并没有自动添加上该webservice的标记,这样运行会出现错误,说找不到配置信息等等……所有还需要把app.config中的<system.serviceModel>……</system.serviceModel>这段配置添加到主配置文件的.config的<configuration>……</configuration>标记中,这样运行就不会出问题了。如果以后服务地址发生了变化,也只需要修改主配置文件config中的地址就行了。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值