使用 ASP.NET 创建的 XML Web services 的设计准则

本主题专门介绍一项旧有技术。现在应通过使用以下链接来创建 XML Web 服务和 XML Web 服务客户端: Windows Communication Foundation.

Web 服务是一项强大的技术,利用它可提供能在 Internet 上以编程方式访问的服务。下列建议有助于创建专业的 Web 服务:

  • Web 服务支持客户端与承载 Web 服务的服务器之间进行同步和异步通信。在同步通信中,客户端会向服务宿主服务器发送服务请求并等待响应。这样可以防止客户端在等待结果时执行其他操作。与此相反,异步通信允许客户端在等待响应时继续处理其他任务。客户端在收到服务请求的结果后将做出响应。

    在使用 Web 服务描述语言工具 (Wsdl.exe) 创建代理类时,它会为该类中的方法生成标准的同步版本和异步版本。异步版本包括两个方法:BeginEndBegin 方法用于启动 Web 服务,而 End 方法则用于检索结果。

    使用异步通信可提高系统利用率,并避免客户端在等待 Web 服务结果时出现延迟。

    有关代码示例,请参见“如何:从 Web 服务客户端执行异步调用”。有关异步通信的其他信息,请参见与 XML Web services 进行异步通信

  • 通过 Internet 发出大量服务请求会影响客户端应用程序的性能。在设计 Web 服务时,通过创建将相关信息组合在一起的方法,可以有效地利用服务请求。例如,假设有一项 Web 服务用于检索有关某书籍的信息。此时不应使用单独的方法来检索书名、作者和出版商,而应创建一个方法,并使之在一个服务请求中返回所有这些信息。一次传输完较大的信息块比将大信息块分为多个较小的信息块进行传输更有效率。

  • 有关代码示例,请参见“如何:将相关信息组合到单个 Web 服务方法中”。设计 Web 服务时,一定要使用采用面向对象的标准编程做法。实现细节应使用封装进行隐藏。对于较为复杂的 Web 服务,可以使用继承和多态性重用代码,以简化设计。

  • 有关代码示例,请参见“如何:使用 Web 服务中的继承”。使用输出缓存可提高 Web 服务的性能。启用输出缓存功能时,服务请求的结果将在输出缓存中存储指定的持续时间。当发出类似的 Web 服务请求时,便可以直接从缓存中获取结果,而无需重新计算。这样便减少了 Web 服务服务器所需的处理量,从而提高了 Web 服务的响应速度。客户端和服务器上都可以执行缓存。Duration 属性可用于指定 Web 服务输出留在缓存中的时间长度。

    在客户端上启用输出缓存的指令如下:

    <%@ OutputCache Duration="60" %>
    For a code example, see How to: Enable Output Caching on a Web Service Client.You can also use the CacheDuration property of the WebMethod attribute class to enable caching on the server. For a code example, see How to: Enable Server-Side Output Caching for a Web Service.
    
  • 设计 Web 服务时,应尽量采用设置架构格式时的结构。

  • Web 服务使用 SOAP 作为主要传输和序列化协议。SOAP 消息由消息正文以及一组可选的标头组成。标头部分包含的信息可由 Web 服务器上的基础结构进行处理。SOAP 不定义任何标头。正文部分包含由应用程序处理的信息,例如 Web 服务的参数或返回值。

    有关 SOAP 标头用法的其他信息,请参见使用 SOAP 标头

  • 该链接提供了介绍服务操作和数据结构的 Web 服务文档,例如静态 HTML 文件。此外,它还包括有关如何使用 Web 服务的示例。服务说明或服务帮助页并不是您唯一的文档,请不要完全依赖它们。

另请参见

任务

如何:从 Web 服务客户端进行异步调用
如何:将相关信息分组到单个 Web 服务方法中
如何:在 Web 服务中使用继承
如何:启用 Web 服务客户端上的输出缓存
如何:对 Web 服务启用服务器端输出缓存

概念

与 XML Web services 进行异步通信

其他资源

使用 ASP.NET 的 XML Web services
使用 SOAP 标头