.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 手动引用

区别

选择全部

选择手动选择

相关推荐
我命由我12345几秒前
Python 实用操作 - 文件操作(打开与关闭文件、读取文件、文件写入)
java·开发语言·前端·javascript·数据库·python·java-ee
修炼的dance9 分钟前
批量转码前用 ffprobe 筛一遍,36 个文件能跳过 26 个
前端
费曼学习法11 分钟前
从 0 到 1 上手 Super-Agent 架构:任务拆解、工具路由与失败回滚的三段实现
前端
2026小鱼AI14 分钟前
当 LLM 生成的教学设计“不合格”:结构化校验、局部重生成与并发下的质量漂移
前端
疯华整猫15 分钟前
借助 Trae 复刻百度网盘“无权限摇一摇”检测:Android 传感器 AI 辅助实战
前端
deli00720 分钟前
流式输出为什么一段一段蹦?拆开 SSE 分块实测 20094 个乱码
前端
不一样的少年_22 分钟前
为什么你写的 Agent 一报错就死循环?很多人都漏掉了这层“错误自救与熔断”机制
前端·后端·agent
857god25 分钟前
做了个匿名聊天站,我把 7 个前端坑踩了一遍
前端
狂潮lister28 分钟前
🚀 《掘金・挖矿小精灵》完整产品与系统架构设计 & V1.3‑LD‑M 落地工程设计文档(**封档版**)
前端·架构·前端框架
deli00729 分钟前
GIF 太大怎么压?调帧率、尺寸、颜色数,10 组参数体积对照实测
前端