我試圖在我的WCF服務中實現一個IErrorHandler,以便在傳遞給客戶端之前記錄每個遇到服務邊界的異常。我已經使用IErrorHandlers將異常轉換爲類型FaultExceptions,這非常有用。根據IErrorHandler.HandleError()的MSDN,它也打算用於邊界記錄。服務邊界WCF錯誤記錄
問題是,HandleError函數不能保證在操作線程上被調用,所以我不知道如何獲得有關什麼操作觸發異常的信息。我可以將TargetSite從異常本身中解脫出來,但是這給了我內部方法而不是操作。我還可以通過StackTrace字符串來解析它的位置,但這看起來有點脆弱和麻煩。在HandleError函數中是否有任何一致且支持的方式來獲取任何狀態信息(消息,操作描述,任何東西)?或者任何其他方式自動記錄服務調用異常?
我正在尋找解決方案來實現生產,使用我現有的日誌框架,所以SvcTraceViewer不會爲我做。
謝謝。
AOP總是嚇壞我,但在這裏看起來非常適用。感謝你的分享。 – smaclell 2008-10-22 02:56:12