异步Web调用 - 所需的配置

问题描述:

我正在为现有的ASP Web服务添加一个异步Web方法。 我将使用SoapHttpClientProtocol并begininvoke调用async方法,传递一个asynccallback对象。异步Web调用 - 所需的配置

我的问题是 - 我是否需要对我的客户端\服务器应用程序进行任何配置更改?我不完全了解这种异步调用是如何工作的 - 客户端应用程序是否继续监听端口等待响应?如果是这样,我是否需要确保端口在客户机的防火墙中打开?

谢谢。

这个问题是关于细节的一点点。推理(可能由于缺乏细节而可能是错误的)是因为.NET客户端正在调用经典ASP应用程序提供的Web服务。

您正在考虑在SoapHttpClientProtocol的子类中使用BeginInvoke,以便从您的客户端角度进行异步调用。

在我的推论是正确的基础上,您不需要对ASP Web服务做任何特殊的处理,只需像往常一样添加服务方法即可。事实上,如果你考虑异步调用一个现有的,你完全不需要对服务器端代码做任何事情。 “异步性”完全是客户端技巧,客户端API在请求完成时执行回调。

它可能更好地理解同步调用是如何工作的,因为实际上它们比显然更复杂的异步调用更“人造”。首先是全部执行一些网络I/O操作必要异步。在某些时候,当前的线程正在等待一个永恒(从现代CPU的角度来看)来完成I/O操作。

因此,所有的Web服务实际上都是异步的,不需要任何特别的配置或防火墙。它只是典型的开发者友好apis将当前线程而IO完成并经常使用函数语义来返回回应。

与异步调用的唯一真正区别是线程不会阻塞一旦I/O操作正在进行,而只是返回。当I/O操作完成时,它将简单地调用所提供的回调方法。