c# WebReference与ServiceReference 小结

原创 2017年01月03日 23:38:53
之前一直没弄清楚在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中的地址就行了。
  • 下一节我要总结下动态添加的方法。

c# Add Web Reference和Add Service Reference添加webservice的区别之一

1 Add Web Reference     根据wsdl文件,按照老的asp.net webservice客户访问机制,生成webservice代理类的方法,即从System.Web.Servi...
  • nodeathphoenix
  • nodeathphoenix
  • 2013年06月05日 11:33
  • 5957

【OSGi】Service

服务 服务就是:为别人完成的工作。目的:是让别人为你工作,而不是试图自己做一切事情。 和方法调用的区别:服务是指提供者及其使用者之间的一个契约,使用者不关心服务的具体实现,甚至不关心是谁提供的,只要...
  • vking_wang
  • vking_wang
  • 2013年11月17日 09:56
  • 9664

解析C#中reference与out关键字

C#中数据类型分为两种:值类型和引用类型,值类型为:基本类型(枚举、数值、布尔)、String、Struct类型,而其他均为引用类型。在引用类型中,reference标注是否对该类型无影响呢? 测试...
  • u014291956
  • u014291956
  • 2018年01月14日 19:05
  • 11

Add Service References 和 Add Web References的区别

Add Service References 和 Add Web References的区别 在项目过程中,需要添加Web服务引用,发现两种用法。搜索了一下相关信息,才知道: VS2...
  • u012025054
  • u012025054
  • 2014年09月19日 16:28
  • 2566

C#调用WebService服务(动态调用)

1 创建WebService using System; using System.Web.Services; namespace WebService1 { /// ///...
  • accountwcx
  • accountwcx
  • 2012年11月18日 00:48
  • 11036

C#中 什么是接口Interface,以及如何简单使用

接口是指定一组函数成员而不实现他们的引用类型。所以只能类和结构来实现接口,在继承该接口的类里面要实现接口的所有方法。 一、 在定义接口时候要注意如下几点: 1.接口生命不能包含以下成员: 数据成员、静...
  • qq_36922335
  • qq_36922335
  • 2017年06月16日 18:59
  • 1431

java 和 c# 的区别

C# 搜索  .NET Framework 类库 java.lang包 java.lang java .net Boolean System...
  • zeng133
  • zeng133
  • 2014年11月06日 20:10
  • 1976

C#访问webservice的几种方式

最近用C#做一个webservice的接口,尝试了好几种方式,今天把方式总结一下 第一种方式 添加服务引用,从项目右键添加引用那里添加,输入URL就可以了。如下图: 这种方式只可以访问部...
  • oqqMuSe
  • oqqMuSe
  • 2015年11月15日 23:14
  • 4008

C#调用URL接口方法

第一步:获取在Web.config中配置要请求的地址 string url = System.Web.Configuration.WebConfigurationManager.AppSettings...
  • lijingrong_ljr
  • lijingrong_ljr
  • 2016年11月18日 11:56
  • 3294

C#调用webservice一个简单实例

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布...
  • sunguoqing348402375
  • sunguoqing348402375
  • 2016年10月10日 15:29
  • 1393
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c# WebReference与ServiceReference 小结
举报原因:
原因补充:

(最多只允许输入30个字)