2012-01-15 52 views
1

我正在爲現有的ASP Web服務添加一個異步Web方法。 我將使用SoapHttpClientProtocol並begininvoke調用async方法,傳遞一個asynccallback對象。異步Web調用 - 所需的配置

我的問題是 - 我是否需要對我的客戶端\服務器應用程序進行任何配置更改?我不完全瞭解這種異步調用是如何工作的 - 客戶端應用程序是否繼續監聽端口等待響應?如果是這樣,我是否需要確保端口在客戶機的防火牆中打開?

謝謝。

回答

0

這個問題是關於細節的一點點。推理(可能由於缺乏細節而可能是錯誤的)是因爲.NET客戶端正在調用經典ASP應用程序提供的Web服務。

您正在考慮在SoapHttpClientProtocol的子類中使用BeginInvoke,以便從您的客戶端角度進行異步調用。

在我的推論是正確的基礎上,您不需要對ASP Web服務做任何特殊的處理,只需像往常一樣添加服務方法即可。事實上,如果你考慮異步調用一個現有的,你完全不需要對服務器端代碼做任何事情。 「異步性」完全是客戶端技巧,客戶端API在請求完成時執行回調。

它可能更好地理解同步調用是如何工作的,因爲實際上它們比顯然更復雜的異步調用更「人造」。首先是全部執行一些網絡I/O操作必要異步。在某些時候,當前的線程正在等待一個永恆(從現代CPU的角度來看)來完成I/O操作。

因此,所有的Web服務實際上都是異步的,不需要任何特別的配置或防火牆。它只是典型的開發者友好apis將當前線程而IO完成並經常使用函數語義來返回迴應。

與異步調用的唯一真正區別是線程不會阻塞一旦I/O操作正在進行,而只是返回。當I/O操作完成時,它將簡單地調用所提供的回調方法。