2012-02-02 61 views
2

我剛剛繼承了運行在.net 4上的asp.net mvc 3網站,該網站大量使用WCF調用非常緩慢的外部服務。該網站尚未生效。多線程應用程序中的WCF代理單例

我發現的一段好奇的代碼是圍繞着WCF客戶端代理的用法。爲所有線程共享的整個aspnet應用程序創建一個實例。所以,實際上是一個全局變量。

對我來說,這個尖叫危險,即使在負載測試下,該站點也能正常運行。沒有防止代碼阻止站點中WCF客戶端的併發呼叫。

有人可以確認在asp網絡應用程序中使用本質上是單身WCF代理的安全嗎?不會故障殺死所有線程的代理?

回答

3

有人可以確認在asp網絡應用程序中使用本質上是一個單一的WCF代理的安全嗎?不會故障殺死所有線程的 代理?

代理是線程安全的,但正如您所說,應該小心處理它,因爲它可能處於故障狀態,在這種情況下應該再次打開通道。您可以查看我一直在使用的following sample implementation以重用相同的渠道工廠。什麼是昂貴的是渠道工廠的創建,而不是渠道本身。