2012-07-11 59 views
1

我有一个IIS 7.5上运行的C#WCF应用程序。获取IIS 7.5和C#的堆栈跟踪每个异常

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

是否直接返回堆栈或记录在服务器上并不重要,只要我能看到是什么导致错误。

更新:感谢迄今为止的答案。不幸的是我是一个IIS/c#newbee。有没有教程或一步一步的指示?到目前为止,我还不知道如何处理答案。

+1

你看过elmah http://code.google.com/p/elmah/ – 2012-07-11 10:50:06

回答

1

你可以使用两个事件在代码中调用一些记录功能

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

Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); 

也,你应该在你的服务行为的配置设置includeExceptionDetailInFaults=true

+0

对不起,我对C#和IIS很陌生。我不知道该把这东西放在哪里。你能给我更多的信息吗? – BetaRide 2012-07-11 10:50:36

+0

前两个示例应该在应用程序生命周期的早期阶段进行调用,您还需要编写实际记录错误的函数,以下是详细信息:http://msdn.microsoft.com/en-us/library/ system.appdomain.unhandledexception.aspx,第三个例子应该放在你的'web.config'文件的'ServiceBehaviour'部分 – paul 2012-07-11 11:00:12

0
  • 认沽呼叫记录错误。 ASP.Net Tracing功能完美适用于此任务。

  • 或者冒出传入和记录Exception.StackTrace的日志记录函数的异常。

  • 使用AppDomain.CurrentDomain.UnhandledException @paul提到一次犯规。

0

我加了一个程序我在版本叫ExceptionTrace到http://stackdump.codeplex.com/项目4.1 Beta版,这将跟踪所有产生的异常没有在代码中的任何改变。它只将自己附加为调试器,并侦听所有生成的异常。