异步 XML Web services 方法
若要提高调用长时间运行的方法(阻止其线程)的 Web 服务方法的性能,应该考虑将它们作为异步 Web 服务方法公开。 实现异步 Web 服务方法将允许该线程在被返回线程池时执行其他代码。 这样便在线程数量有限的线程池内又多了一个线程可以执行,从而增强了系统的整体性能和可伸缩性。
有关如何将 Web 服务方法转换为一对专门用于异步访问的方法的分步说明,请参见如何:创建异步 Web 服务方法。 有关其他代码示例,请参见如何:用 Web 服务方法链接异步调用。
通常,调用执行 I/O 操作的方法的 Web 服务方法非常适合在异步实现中使用。 这类方法的示例包括:与其他 Web 服务进行通信的方法、访问远程数据库的方法、执行网络 I/O 操作的方法以及对大文件进行读写操作的方法。 所有这些方法都耗费大量时间在硬件内执行,这会使用于执行 Web 服务方法的线程处于阻止状态。 如果该 Web 服务方法是异步实现的,则可以释放该线程以执行其他代码。
无论 Web 服务方法是否是异步实现的,客户端都可以与它进行异步通信。 即便某个 Web 服务方法是同步实现的,仍会在由 Web 服务描述语言 (WSDL.EXE) 工具生成的代理类中向 .NET 客户端公开异步通信。 该代理类包含 Begin 和 End 方法,以便与每个 Web 服务方法进行异步通信。 因此,应该以性能为基础,做出是以异步方式还是以同步方式实现 Web 服务方法的决定。
注意: |
---|
实现异步 Web 服务方法不会影响客户端与承载该 Web 服务的服务器之间的 HTTP 连接。 HTTP 连接既不会关闭,也不会被共用。 |
请参见
任务
如何:创建异步 Web 服务方法
如何:用 Web 服务方法链接异步调用
概念
其他资源
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。