.net添加web引用和添加服务引用有什么区别?

添加web引用和添加服务引用有什么区别?

添加web引用和添加服务引用有什么区别,

Add Service References 和 Add Web References 有啥区别?

(1)VS2005里提供的Add Web Reference(添加Web服务引用)的功能主要是添加Web Service引用。

(2)VS2008保留了Add Web Reference(添加Web服务引用)也是为了版本向前兼容。目前很多项目还是基于.NET Framework 2.0。

(3)VS2008在升级以后为了对.NET Framework 3.0 或 3.5版本上WCF Service Library的支持。增加了Add Service Reference(添加服务引用)功能。Framework3.0 或 3.5 时可用。

你说的情况我自己做了一下试验,同时存在Add Service Reference、Add Web Reference 两者情况的项目类型是Web服务程序。包括Web Service项目。普通的控制台等类型是没有Add Web Reference 。

我仔细对比了两种方式添加同一个 WebService生成的客户端文件 Reference.cs, 有差别。

1.主要添加引用都有一个获取服务元数据,反序列话本地类文件的过程。这个结构也基本类似。都包含wsdl\discovery等文件。

这个也和WCF Service支持Web Service的核心行业标准有关系。毕竟WCF的特性之一就是兼容Web Service的特性。

2.不同的地方时Add Web Reference 生成的 Reference.cs文件里,包含一个服务代理类,他负责与Web服务通信,它继承一个Soap类,使用SOAP协议,SOAP简单对象访问协议,基于XML语言。此外还包含一些Web服务类里定义的方法,和与之相关的异步调用方法和事件。遵守.NET Web Service 的主要规则。

3.Add Service Reference生成的客户端文件 Reference.cs。我看了一下,这个也会反序列化一个本地代理类,很相似和前者。不过除了服务类和其相关的一些别的类和契约接口。其中比较重要就是一个契约和一个通信管道。这个主要和WCF框架

的编程模型和反序列话机制有关系。因为WCF 强调的是 契约的概念,还有就是绑定协议,这个就直接决定了客户端和服务端通信的通道类型。你在这个文件里也能看到。此外还有服务请求和相应对应的信息。遵循WCF服务框架的规则。

  1. 添加Web引用生成的代理可以被.NET Framework 1.0或者.NET Framework 2.0的客户端调用。

而添加服务引用生成的代理只能被.NET Framework 3.0以上的客户端调用,而且添加服务引用后不仅生成代理类,在web.config中还会生成相应的标记。

同时存在Add Service Reference、Add Web Reference 两者情况的项目类型是Web服务程序。包括Web Service项目。普通的控制台等类型是没有Add Web Reference 。

都是可以Add Web Reference的诶,控制台类型项目在Add Service Reference窗口有个Advanced按钮,其中仍然可以选择Add Web Reference。我觉得是微软建议使用Add Service Reference,但保留了Add Web Reference以保持兼容性。

我测试了使用Add Web Reference这种方式,可以添加WCF服务


版权声明:本文为CSDN博主「勿勿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:添加web引用和添加服务引用有什么区别?_web引用改成服务引用-CSDN博客

快速区分服务引用与Web引用

href="http://book.2cto.com/201304/20441.html" http://book.2cto.com/201304/20441.html

使用添加Web引用后将由wsdl.exe生成客户端代理。而使用添加服务引用后生成客户端代理的命令是svcutil.exe

System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")

更新服务引用

WCF 数据服务的实体数据模型有时会更改。 发生这种情况时,必须更新服务引用。

解决方案资源管理器中 ,展开 "连接服务 "节点,右键单击服务引用,然后单击" 更新服务引用"。

从引用的初始位置对其进行更新时会显示一个进度对话框,并且会重新生成服务客户端以显示元数据中的所有更改。

没有看到----20220720

重新使用引用的程序及中的类型

选择A ,引用所有;

选择B 手动引用

区别

选择全部

选择手动选择

相关推荐
Full Stack Developme1 小时前
正则表达式的使用教程
java·数据库·正则表达式
SeeYa-J2 小时前
Sprint 1-2:创建第一个 Spring Boot Module(user-service)
java·spring boot·sprint
云絮.2 小时前
数据库事务
java·开发语言·数据库
格子软件2 小时前
2026年GEO优化系统源码级状态机与多模型调度拆解
java·前端·vue.js·人工智能·vue·geo
Full Stack Developme3 小时前
Java 漏斗算法 及应用场景
java·开发语言·算法
从此以后自律3 小时前
Spring 全家桶
java·后端·spring
偏爱自由 !3 小时前
一(0.1):配置git
java·git·intellij-idea
骑士雄师3 小时前
java面试记录: sychonized 锁,熔断组件,分布式锁
java·开发语言·面试