我正在使用NetTcp綁定與某些WCF服務通信的項目。當第一次開始了我們採取的其他應用程序做WCF通過調用一個不好的做法,比如下面:WCF錯誤記錄
EntityObject sample = new ServiceProxy().GetEntity();
直到我們意識到WCF是抱着到即使aspx頁面已被髮送到連接的工作太棒了客戶端(我天真地認爲會清理任何連接)。雖然連接被阻止導致事情最終放緩,但ELMAH記錄了任何錯誤並向我們發送了完整的堆棧跟蹤。爲了解決性能問題,我們改爲:
using (ServiceProxy proxy = new ServiceProxy())
{
sample = proxy.GetEntity();
}
這使得表現搖滾比較。這種方法的缺點是每當代理收到錯誤時,ELMAH唯一可以捕捉到的就是現在的通道出現故障。然後,我們必須深入挖掘日誌(使用sharedListener設置WCF的)來判斷髮生了什麼,如果是序列化錯誤,儘管偵聽器在客戶端和服務器上都設置了,但實際發現它的可能性要低得多。我已經探索了IErrorHandler接口,並且將爲它添加對我們的服務的支持,但是我想知道是否有其他方法可以從WCF中獲取詳細的錯誤,而不是僅僅說錯誤,並且沒有真正的信息來說明爲什麼故障。如果它在序列化它可以告訴我們的對象時死亡,這將是特別有益的。爲什麼它不能序列化。
這看起來和我在找的一模一樣。謝謝您的幫助。 – RubyHaus 2009-10-13 20:00:04