异步 XML Web services 方法

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

若要提高调用长时间运行的方法(阻止其线程)的 Web 服务方法的性能,应该考虑将它们作为异步 Web 服务方法公开。实现异步 Web 服务方法将允许该线程在被返回线程池时执行其他代码。这样便在线程数量有限的线程池内又多了一个线程可以执行,从而增强了系统的整体性能和可伸缩性。

有关如何将 Web 服务方法转换为一对专门用于异步访问的方法的分步说明,请参见如何:创建异步 Web 服务方法。有关其他代码示例,请参见如何:用 Web 服务方法链接异步调用

通常,调用执行 I/O 操作的方法的 Web 服务方法非常适合在异步实现中使用。这类方法的示例包括:与其他 Web 服务进行通信的方法、访问远程数据库的方法、执行网络 I/O 操作的方法以及对大文件进行读写操作的方法。所有这些方法都耗费大量时间在硬件内执行,这会使用于执行 Web 服务方法的线程处于阻止状态。如果该 Web 服务方法是异步实现的,则可以释放该线程以执行其他代码。

无论 Web 服务方法是否是异步实现的,客户端都可以与它进行异步通信。即便某个 Web 服务方法是同步实现的,仍会在由 Web 服务描述语言 (WSDL.EXE) 工具生成的代理类中向 .NET 客户端公开异步通信。该代理类包含 BeginEnd 方法,以便与每个 Web 服务方法进行异步通信。因此,应该以性能为基础,做出是以异步方式还是以同步方式实现 Web 服务方法的决定。

83bkx91t.note(zh-cn,VS.100).gif注意:
实现异步 Web 服务方法不会影响客户端与承载该 Web 服务的服务器之间的 HTTP 连接。HTTP 连接既不会关闭,也不会被共用。

另请参见

任务

如何:创建异步 Web 服务方法
如何:用 Web 服务方法链接异步调用

概念

与 XML Web services 进行异步通信

其他资源

使用 ASP.NET 的 XML Web services