与ASP相关的外文文献。网
网络服务
探索Web服务的一个很好的起点是准确定义什么是Web服务。Web服务是一种应用程序,它:
在Web服务器上运行
向感兴趣的调用方公开Web方法
侦听表示调用Web方法的命令的HTTP请求
执行Web方法并返回结果
大多数Web服务期望使用包含SOAP消息的HTTP请求来调用它们的Web方法。SOAP是一个基于XML的词汇表,用于使用HTTP和其他协议执行远程过程调用。您可以在/calc.asmx上阅读所有相关内容,下面是客户端如何通过在HTTP请求中传输SOAP信封来调用Add方法。此示例将2和2相加:
POST/calc . asmx HTTP/1.1
主持人:www.wintellect.com
内容类型:文本/XML;charset=utf-8
内容长度:338
soap action:“mands。以下GET命令通过调用Web服务的Add方法将2和2相加:
GET /calc.asmx/Add?a = 2 & ampb=2 HTTP/1.1
主持人:www.wintellect.com
Web服务的响应如下:
HTTP/1.1 200 OK
内容类型:文本/XML;charset=utf-8
内容长度:80
& lt?xml版本="1.0 "编码="utf-8 "?& gt
& ltint xmlns="mand将2和2相加:
POST/calc . asmx/Add HTTP/1.1
主持人:www.wintellect.com
内容类型:application/x-www-form-urlencoded
内容长度:7
a = 2 & ampb=2
这是网络服务的回应:
HTTP/1.1 200 OK
内容类型:文本/XML;charset=utf-8
内容长度:80
& lt?xml版本="1.0 "编码="utf-8 "?& gt
& ltint xmlns="panies。您可以使用。NET框架。因为这本书是关于微软的。NET,本章讲的是后者。使用编写Web服务。与所有其他方法相比,NET Framework提供了两个优势:
的。NET框架使得编写Web服务变得极其容易。
用。NET Framework是托管应用程序,这意味着您不必担心内存泄漏、游离指针和其他困扰程序员的问题,这些问题花费的时间超过了开发时间。
使用。NET框架?我很高兴你问了这个问题,因为这是下一节要讲的内容。
你的第一个网络服务
图11-1所示的ASMX文件是一个完整的Web服务。它实现了两个Web方法:Add和Subtract。两者都接受两个整数作为输入,并返回一个整数。部署Web服务非常简单,只需将它复制到Web服务器上可通过URL寻址的目录中。如果将Calc.asmx放在wwwroot中,则Web服务的本地URL是http://localhost/calc.asmx。
asmx演示了使用。NET框架:
Web服务在ASMX文件中实现。ASMX是在Machine.config中注册到ASP.NET(特别是ASP.NET HTTP处理程序)的特殊文件扩展名
ASMX文件以@ WebService指令开头。该指令至少必须包含一个Class属性,用于标识组成Web服务的类。
Web服务类可以用可选的Web service属性进行属性化。本例中的代码为Web服务分配了一个名称和描述,当用户在浏览器中调用Calc.asmx时,这些名称和描述会显示在生成的HTML页面中。WebService属性还支持Namespace参数,该参数可用于更改XML命名空间的名称,该命名空间限定了Web服务成员的范围。
通过用WebMethod属性标记Web服务类中的公共方法来声明Web方法。通过省略属性,可以将帮助器方法构建到Web服务中,这些方法由Web方法内部使用,但本身不作为Web方法公开。图11-1中的WebMethod属性也为它们的Web方法分配了描述性文本。在“WebMethod属性”一节中,您将了解更多关于描述和其他WebMethod参数的信息
HTTP、XML和SOAP隐藏在幕后。您不必处理原始的XML数据或SOAP消息,因为。NET Framework会为您处理这些问题。