web service接口 wsdl和asmx有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web service接口 wsdl和asmx有啥区别相关的知识,希望对你有一定的参考价值。

 Web service一般就是用SOAP协议通过HTTP来调用它,其实他就是一个WSDL文档,客户都可以阅读WSDL文档来用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。
个人以为就把webservice当成是Http这种请求和响应方式就可以处理大部分问题了。
SOAP 使用 HTTP 传送 XML,尽管HTTP 不是有效率的通讯协议,而且 XML 还需要额外的文件解析(parse),两者使得交易的速度大大低于其它方案。但是XML 是一个开放、健全、有语义的讯息机制,而 HTTP 是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛的应用。但是如果效率对自己来说很重要,那么应该多考虑其它的方式,而不要用 SOAP。

为了更好的理解SOAP,HTTP,XML如何工作的,不妨先考虑一下COM/DCOM的运行机制,DCOM处理网络协议的低层次的细节问题,如PROXY/STUB间的通讯,生命周期的管理,对象的标识。在客户端与服务器端进行交互的时候,DCOM采用NDR(Network Data Representation)作为数据表示,它是低层次的与平台无关的数据表现形式。
参考技术A

1.Web Service:严格来说是行业标准,也就是Web Service 规范,也称作WS-* 规范,既不是框架,也不是技术. 它有一套完成的规范体系标准,而且在持续不断的更新完善中. 它使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键).微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间.

2.WCF:WCF 是一个分布式应用的开发框架,属于特定的技术,或者平台.既不是标准也不是规范。

环球网

目前,该词汇又引申为“环球网”,而且,在不同的领域,有不同的含义。

就拿“环球网”的释义来说,对于普通的用户来说,web仅仅只是一种环境——互联网的使用环境、氛围、内容等;而对于网站制作、设计者来说,它是一系列技术的复合总称(包括网站的前台布局、后台程序、美工、数据库领域等等的技术概括性的总称)。                

如何创建和发布.asmx Web Service

参考技术A 工具:VS2005

1.首先VS2005中新建一个WEB服务项目。

打开“文件”->“新建”->“网站”,在对话框中选择“ASP.NET Web服务”,VS2005会自动生成一个Service.cs文件,包含如下代码:

C#代码

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
public Service ()
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();


[WebMethod]
public string HelloWorld()
return "Hello World";



可以在这里修改自己的命名空间,加入自己的方法,但本文只是为了说明如何创建和发布,所以对Service.cs不做任何更改。其中可能会需要在项目中添
加dll,比如log4net.dll,除了在代码中声明使用:using log4net; 还有就是在项目上右键 - 添加引用 -
添加该dll。就会最终将其添加在项目根目录的Bin文件夹下。

2.生成网站

很简单,“生成”->“生成网站”或直接Shift+F6

3.发布网站

也是简单,“生成”->“发布网站”,这里会弹出一个对话框,什么也不需要修改,记下发布的目录。比如:C:\我的文档\Visual
Studio 2005\Projects\WebSite1\PrecompiledWeb\WebSite1,我们需要目录下的文件。

4.配置IIS

以上是关于web service接口 wsdl和asmx有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

不同的 WSDL ASMX、WCF Web 服务

WSDL接口数据传递以及外网发布需要注意的地方

有没有办法限制对 ASMX Web 服务的访问,即 asmx 页面及其 WSDL?

VS2010 根据WSDL文件(java Web Service)生成.cs文件

从 WSDL 文件创建 ASMX Web 服务

从 ASMX Web 服务导入 wsdl 时出现 WsdlImporter 错误