我有一个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