我有一個IIS 7.5上運行的C#WCF應用程序。獲取IIS 7.5和C#的堆棧跟蹤每個異常
如果拋出異常,我得到通用請求失敗頁面。爲了找到有罪的代碼,我想得到一個完整的堆棧跟蹤,包括行號和文件名。我怎樣才能做到這一點?
是否直接返回堆棧或記錄在服務器上並不重要,只要我能看到是什麼導致錯誤。
更新:感謝迄今爲止的答案。不幸的是我是一個IIS/c#newbee。有沒有教程或一步一步的指示?到目前爲止,我還不知道如何處理答案。
我有一個IIS 7.5上運行的C#WCF應用程序。獲取IIS 7.5和C#的堆棧跟蹤每個異常
如果拋出異常,我得到通用請求失敗頁面。爲了找到有罪的代碼,我想得到一個完整的堆棧跟蹤,包括行號和文件名。我怎樣才能做到這一點?
是否直接返回堆棧或記錄在服務器上並不重要,只要我能看到是什麼導致錯誤。
更新:感謝迄今爲止的答案。不幸的是我是一個IIS/c#newbee。有沒有教程或一步一步的指示?到目前爲止,我還不知道如何處理答案。
你可以使用兩個事件在代碼中調用一些記錄功能
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
和
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
也,你應該在你的服務行爲的配置設置includeExceptionDetailInFaults=true
您可以提供更多的信息與FaultExceptions
http://msdn.microsoft.com/en-us/library/ms576199.aspx
一些例子:在的try-catch語句
http://www.c-sharpcorner.com/uploadfile/afenster/wcf-error-handling-and-faultexceptions/
認沽呼叫記錄錯誤。 ASP.Net Tracing功能完美適用於此任務。
或者冒出傳入和記錄Exception.StackTrace
的日誌記錄函數的異常。
使用AppDomain.CurrentDomain.UnhandledException
@paul提到一次犯規。
我加了一個程序我在版本叫ExceptionTrace到http://stackdump.codeplex.com/項目4.1 Beta版,這將跟蹤所有產生的異常沒有在代碼中的任何改變。它只將自己附加爲調試器,並偵聽所有生成的異常。
你看過elmah http://code.google.com/p/elmah/ – 2012-07-11 10:50:06