2014-01-29 157 views
0

我有一個關於基本HTTP綁定wcf服務的基本問題: 當客戶端同步調用wcf服務(basichttpbinding)時,如何在兩者之間接收請求和響應?在服務器上的2和端口之間建立的套接字連接是否綁定直到客戶端收到響應爲止?如何將響應發送回等待的客戶端?服務器上的IF端口對於長時間運行的操作是不可用的,那麼它是否會阻礙服務能力接受來自其他客戶端的請求?另外,如何在通過wcf服務進行異步調用時發生通信?我讀了這個通道,因此端口/套接字應該在兩端保持打開狀態。WCF客戶端服務通信

回答

0

使用basichttpbinding,它與瀏覽器和Web服務器之間的普通http通信非常相似。如果您點擊網頁上的鏈接,則來自瀏覽器的請求會發送到相應的Web服務器,該服務器會處理該請求,並將該內容作爲響應返回給等待的瀏覽器。

這與WCF basicHTTPBinding一樣。 WCF客戶端向指定的Web服務(http:// webservice:port/ServiceObj/MethodName)發送post或get請求,並等待響應。當Web服務完成收集數據時,數據將在打開的連接上的響應中發送回客戶端,然後由主機關閉。沒有持續的連接。因此,basichttpbinding是無狀態的。一旦Web服務發送響應,連接就會被回收,並且服務已準備好進行下一個請求。

如果客戶端完成其通信,它可以明確地關閉其連接;這是最好的。但是如果它沒有關閉它的連接,它將不會對主機產生任何影響。

+0

謝謝,我仍然有一個查詢,當你說連接被回收的意思。如果在服務器上使用其Web服務端口80來偵聽請求。如果有多個客戶端向服務器發送請求,並且每個客戶端都與服務器有連接,直到收到響應,我們是否在服務器端進行連接?連接只是客戶端IP和端口以及服務器IP和端口的組合。服務器端端口和IP相同,所有客戶端都連接到服務器上相同的IP和端口組合。那麼我回收的連接是什麼? – user1855287

+0

回收可能是錯誤的詞,因爲這意味着重新使用。根據我的理解,在響應被髮送回客戶端後,連接在服務器端關閉。 WCF主機可以在主機端運行許多併發連接。如果在給定的時間內有太多的請求進入,請求會自動排入WCF隊列,並在系統有機會時處理。 – Brian