(转)2.4.1 基础知识--添加服务引用与Web引用的区别
《Web服务开发学习实录》第2章构建ASP.NET Web服务,本章我们将学习创建Web服务的各种方法,并重点对使用Visual Studio创建ASP.NET Web服务和修改Web服务的属性进行介绍。本节为大家介绍基础知识--添加服务引用与Web引用的区别。
AD:
2.4.1 基础知识--添加服务引用与Web引用的区别
由于.NET Framework 4默认不再推荐Web服务,而是通过WCF来实现Web服务的功能。而.NET Framework 3.5两者都支持,因此在添加时存在一些差异。
在创建基于.NET Framework 4的项目或者网站时,右击项目或者网站名称,弹出的快捷菜单中只会出现【添加服务引用】命令,如图2-20所示。
选择该项将打开【添加服务引用】对话框,在这里的【地址】下拉列表框中可以输入WCF的地址,再单击【前往】按钮。如图2-21所示为添加一个WCF服务引用时的对话框效果。
|
| 图2-20 快捷菜单 |
|
| 图2-21 【添加服务引用】对话框 |
虽然,也可以通过Web服务的URL来添加服务引用。但是要注意,此方法不能保证Web服务的正常使用,因此不推荐使用。
不过,打开【添加Web引用】对话框并不复杂。在图2-21所示的对话框中单击【高级】按钮,然后从弹出的【服务引用设置】对话框中单击【添加Web引用】按钮即可,如图2-22所示。
|
| 图2-22 【服务引用设置】对话框 |
下面我们来了解一下添加服务引用与添加Web引用的区别。
(1) 添加服务引用使用的是WCF服务,而添加Web引用使用的是Web服务。
(2) Visual Studio 2010在升级以后为了支持.NET Framework 3.0或3.5版本上的WCF Service Library,增加了添加服务引用功能。而对于Web服务从.NET Framework 1.0开始就支持。
(3) 同时存在添加服务引用与添加Web引用两者情况的项目类型是Web服务程序,包括Web Service项目。普通的控制台和窗体等类型是没有添加Web引用的。
(4) 使用添加Web引用后将由wsdl.exe生成客户端代理。而使用添加服务引用后生成客户端代理的命令是svcutil.exe。
(5) 添加Web引用生成的代理可以被.NET Framework 1.0或者.NET Framework 2.0的客户端调用。而添加服务引用生成的代理只能被.NET Framework 3.0以上的客户端调用,而且添加服务引用后不仅生成代理类,在web.config中还会生成相应的标记。
(6) 添加Web引用生成的Reference.cs文件里包含一个服务代理类,它负责与Web服务通信。它继承一个SOAP类,使用SOAP协议,基于XML语言。此外还包含一些Web服务类里定义的方法,和与之相关的异步调用方法和事件。遵守.NET Web Service的主要规则。
(7) 添加服务引用生成的客户端文件Reference.cs也会反序列化一个本地代理类,这点和前者相似。不过除了服务类和其相关的一些别的类和契约接口外,还有服务请求和相应的信息。遵循WCF服务框架的规则。
技术文档 WCF与Web服务的关系
严格地说,Web服务是行业标准,它有一套规范体系标准,而且在持续不断的更新完善中,也就是Web Service 规范,也称作WS-*规范,既不是框架,也不是技术。
微软的Web服务实现称为ASP.NET Web Service,它使用Soap来实现分布式环境里应用程序之间的数据交互,用WSDL来实现服务接口相关的描述。
WCF(Windows Communication Foundation)是一个分布式应用的开发框架,属于特定的技术,或者平台。既不是标准,也不是规范。WCF在一定程度上就是ASP.NET Web Service,因为它支持Web Service的行业标准和核心协议。因此ASP.NET Web Service能做的事情,WCF几乎都能胜任,跨平台和语言更不是问题。
但是WCF作为微软主推的一个通信平台,它的目标不仅仅是支持和集成Web Service,因为它还兼容和具备了微软早期很多分布式技术的特性。在本书的第13章将详细讨论WCF。
(转)2.4.1 基础知识--添加服务引用与Web引用的区别的更多相关文章
- 基础知识系列☞C#中→属性和字段的区别
"好吧...准备写个'基础知识系列',算是记录下吧,时时看看,更加加深记忆···" 其实本来准备叫"面试系列"... 字段.属性.你先知道的哪个概念? ***我 ...
- c# winform 访问WebServices 服务(通过WEB引用的方式进行访问)
第一步.Winform项目引用WEB服务 第二步.代码声明实例化 Web引用 YzServ.TestServ yzserv = new WebYzServ.TestServ(); yzserv.AAA ...
- 基础知识系列☞各版本下IIS请求处理过程区别
转载地址→http://www.cnblogs.com/fsjohnhuang/articles/2332074.html ASP.NET是一个非常强大的构建Web应用的平台, 它提供了极大的灵活性和 ...
- 网络基础知识之————A记录和CNAME记录的区别
1.什么是域名解析? 域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程.IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址.域名的解 ...
- Java基础知识强化18:抽象类、接口的区别 和 选择性实现接口方法
1.抽象类和接口的区别 抽象类里面可以有非抽象的方法(可以没有抽象方法),接口里只能有抽象方法. 抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号. 抽象类(abstract c ...
- 以太网基础知识0(UDP和TCP有什么区别)
参考:http://zhidao.baidu.com/link?url=GSIg9_zFhWi6PHezalQveRwwUsU0as7k6MFd05r-cruLT1yDABARraHkuq8ohdIR ...
- Linux基础知识之bashrc和profile的用途和区别
使用终端ssh登录Linux操作系统的控制台后,会出现一个提示符号(例如:#或~),在这个提示符号之后可以输入命令,Linux根据输入的命令会做回应,这一连串的动作是由一个所谓的Shell来做处理. ...
- Java基础知识总结--final、finally、finalize的区别
谈谈final.finally.finalize的区别 1.final修饰符:如果一个类被声明为final,意味着这个类不能再被派生出新的子类,不能作为父类被别的类继承.因此,一个类不能即被声明为ab ...
- ConsoleApplication 添加对于 System.ServiceModel.Web 引用失败(出现黄色感叹号)的解决办法
今天在写一个WebHttpBinding的demo,再创建一个Console应用程序后,发现无法添加System.ServiceModel.Web,如图
随机推荐
- 通过Url传多个参数方法
MVC3通过URL传值,一般情况下都会遇到[从客户端(&)中检测到有潜在危险的 Request.Path 值]的问题 这个问题的解决方法,我的其他博文已经有了说明,这里给出连接[从客户端(&a ...
- js判断值是否为数字
js判断是否是数字 第一种方法 isNaN isNaN 返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字). NaN 即 Not a Number isNaN(numValu ...
- C++编译指令#pragma pack的配对使用
#pragma pack可以用来指定C++数据结构的成员变量的内存对齐数值(可选值为1,2,4,8,16). 本文主要是强调在你的头文件中使用pack指令要配对使用,以避免意外影响项目中其他源文件的结 ...
- uva 280 - Vertex
#include <iostream> #include <cstdio> using namespace std; #include <vector> #defi ...
- Apache虚拟主机的配置
虚拟主机的配置 基于IP地址的虚拟主机配置Listen 80DocumentRoot /www/example1ServerName www.example1.comDocumentRoot /www ...
- [算法]分治算法(Divide and Conquer)
转载请注明:http://www.cnblogs.com/StartoverX/p/4575744.html 分治算法 在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式.字面上的解释是 ...
- Java学习笔记--“==”与"equals"
java中的数据类型,可分为两类: 1. 基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==) ...
- IIC总线协议---以存储芯片at24c64为例
IIC总线协议 前言:年前给老师做个红外抄表系统,,现在对当中用到的一些模块总结一下. 1.只有在总线空闲时才允许启动数据传送. 2.在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允 ...
- Some General concepts in ISO C
[ISO C11 Clause 3]对象(object):执行环境中数据存储的一块区域,它的内容可以用来表示值.-注释:对象可以具有特定的类型.--值(value):确定类型的对象的内容的确切含义.- ...
- 【转】Windows 7下硬盘安装Ubuntu 14.04图文教程--不错
原文网址:http://www.linuxidc.com/Linux/2014-04/100369p3.htm Ubuntu 官方已经发布了正式版的 Ubuntu 14.04 LTS,并宣称这是为云计 ...