2012-07-13 62 views
1

我很難與NetTcpBinding和超時。我知道這可以通過在每次服務調用時編寫Try-Catch-block來解決,並且在失敗時用ChannelFactory創建一個新頻道並再次進行相同的調用。唯一的問題是,有幾百個地方我不得不做這種醜陋的措施。擴展WCF通道自動重新創建(/重新連接)本身在失敗

我知道必須有更好的解決方案。不幸的是繼承不在我的情況。方面將工作,但沒有真正的支持他們在.net ..

我想知道如果WCF(通道模型?)可以擴展的方式,如果超時,exeption被拋出,通道會自動重新生成(或它試圖重新連接),並再次進行相同的呼叫。所有幕後。

回答

3

在我們的一個項目中,我們使用了一個代理來封裝真正的ServiceClient,並對通道的調用進行了嘗試。
當發生異常並且通道出現故障時,我們重新打開連接並重新調用。
我們放了一個閾值,在3次超時後,我們不會再次調用相同的方法。

您可以使用DynamicProxy或Unity Interceptor來創建這種機制。
此鏈接可能是有用的http://kozmic.pl/2009/05/03/wcf-client-proxy-with-castle-dynamic-proxy/

+0

謝謝!這比我想要的還要好。 – Juha 2012-07-16 11:55:49