2009-11-27 102 views
1

我是Wcf的新手,並試圖創建我的第一個Wcf服務。增加了具有非託管代碼並進行文件操作的類(新程序集)。服務行爲設置爲跟隨Wcf隔離實例

InstanceContextMode = InstanceContextMode.Single

ConcurrencyMode = ConcurrencyMode.Single

當服務被訪問是單一的模式,創建新的文件操作類。我注意到,如果文件操作類失敗(內存泄漏或嚴重錯誤),則受到之前連接影響的所有主機的新連接。

是否有可能創建完全相互隔離的客戶端連接關閉後完全銷燬的Wcf實例?

問候, 托馬斯

回答

2

是的,這是首選的方式 - 這就是所謂的 「每呼」:

InstanceContextMode = InstanceContextMode.PerCall

ConcurrencyMode = ConcurrencyMode.Single

這樣,每個請求進入您的WCF服務將獲得它自己的,單獨的,孤立的服務類實例,並且該實例將處理該請求,然後被處置。

這應該給你最大的性能,並隔離彼此的請求。