2011-06-17 111 views
2

怎樣的生命週期看起來像以下:Web服務和單例WCF服務的WCF生命週期?

  1. WCF web服務(HTTP)

如果我得到這個正確的服務將在每次調用產生的?

  1. WCF netTCP(也主持在IIS)作爲單

是否正確thtat WCF服務將在第一個調用中創建,然後不會跌?或者當一段時間沒有聯繫時它會下降?如果是這樣,我在哪裏設置這個超時?在我的情況下,服務是爲客戶保持狀態,所以如果客戶端連接但是閒置時間會超過超時時間會發生什麼?

回答

3

對於1)服務將在每個客戶端呼叫

2)單獨服務 的單獨服務是最終的可共享的服務被創建。當您配置服務爲 一單,所有客戶端都獨立地連接到同一個知名 實例上下文和隱式內相同的情況下,無論哪個端點它們連接到服務的 。單身創建只有一次,在創建 主機時,永遠生活:其設置的,只有當主機關機

由於其本身的性質,單是共同的,每個客戶端應該簡單地建立自己的代理或代理給它。

1

1)如果你正在使用的wsHttpBinding則默認情況下你會得到PerSession實例化,你會得到每代理一個實例。如果您使用的是BasicHttpBinding,那麼默認情況下您將獲得PerCall實例化 - 每個請求一個實例。

2)正如托馬斯所說,單身人士是在ServiceHost打開時創建的(或者你可以自己創建它們,只要IIS保持AppDomain/worker進程的活躍狀態,單身人士就會活下去,你可以配置影響這個過程的超時在不同程度取決於哪個版本的IIS您使用http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling