我在IIS 7.5上运行了一个C#WCF应用程序。
如果抛出异常,我会收到通用请求失败页面。为了找到有罪的代码,我想得到一个完整的堆栈跟踪,包括行号和文件名。我怎么能这样做?
无论是直接返回堆栈还是在服务器上内部记录都无关紧要,只要我能看到导致错误的原因。
更新:感谢您的回答。不幸的是我是IIS / c #newbee。是否有任何教程或分步说明?到目前为止,我还不知道如何处理答案。
答案 0 :(得分:1)
您可以在代码中使用几个事件处理程序来调用一些日志记录功能
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
和
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
另外,您应该在服务行为配置中设置includeExceptionDetailInFaults=true
答案 1 :(得分:1)
您可以使用FaultExceptions
http://msdn.microsoft.com/en-us/library/ms576199.aspx
一些例子:
http://www.c-sharpcorner.com/uploadfile/afenster/wcf-error-handling-and-faultexceptions/
答案 2 :(得分:0)
在Try-Catch语句中调用以记录错误。 ASP.Net Tracing函数非常适合此任务。
或者将异常冒泡到传入和记录Exception.StackTrace
的日志记录函数。
使用AppDomain.CurrentDomain.UnhandledException
@paul提及,一次性完成。
答案 3 :(得分:0)
我将一个名为ExceptionTrace的程序添加到版本4的http://stackdump.codeplex.com/项目中.1 Beta将跟踪所有生成的异常,而不会对代码进行任何更改。它只将自身附加为调试器并侦听所有生成的异常。