1

我有一个在 IIS 7.5 上运行的 C# WCF 应用程序。

如果抛出异常,我会得到通用请求失败页面。为了找到有罪的代码,我想获得一个完整的堆栈跟踪,包括行号和文件名。我怎样才能做到这一点?

堆栈是直接返回还是内部记录在服务器上并不重要,只要我能看到导致错误的原因。

更新:感谢到目前为止的答案。不幸的是,我是 IIS/c# 新手。有教程或分步说明吗?到目前为止,我不知道如何处理这些答案。

4

4 回答 4

1

您可以在代码中使用几个事件处理程序来调用一些日志记录功能

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);

此外,您应该includeExceptionDetailInFaults=true在服务行为配置中进行设置

于 2012-07-11T10:46:25.550 回答
1

您可以提供更多信息FaultExceptions

http://msdn.microsoft.com/en-us/library/ms576199.aspx

一些例子:

http://www.c-sharpcorner.com/uploadfile/afenster/wcf-error-handling-and-faultexceptions/

于 2012-07-11T10:47:19.770 回答
0

我在版本 4 的http://stackdump.codeplex.com/项目中添加了一个名为 ExceptionTrace 的程序。1 Beta 版将跟踪所有生成的异常,而无需对代码进行任何更改。它仅将自己附加为调试器并侦听所有生成的异常。

于 2012-07-23T13:27:45.853 回答
0
  • 在 Try-Catch 语句中调用以记录错误。ASP.Net Tracing功能非常适合这项任务。

  • 或者将异常冒泡到传入并记录Exception.StackTrace.

  • AppDomain.CurrentDomain.UnhandledException使用@paul 提及的方式一举搞定。

于 2012-07-11T11:13:08.940 回答