跟踪Web应用程序

时间:2011-11-26 14:19:35

标签: debugging web-applications logging iis-6

我正在开发基于我们已实现代码的遗留应用程序的Web应用程序(ASP.NET 3.5 / C#)。该应用程序托管在安装了带有IIS 6的MS Server 2003的虚拟机上。

随机出现一些异常,例如:“加载此程序集会产生不同的授权”,而不会向我们提供有关应用程序在何处/为何发生的大量信息。 出于这个原因,我们希望跟踪Web应用程序,以便尽可能多地获取有关其行为的信息。

我们刚开始使用“NLog”来跟踪用户活动以及日志文件中的请求/响应。但是,为了获得更多信息,有人可以建议进一步申请吗?

由于遗留应用程序无法访问部分代码,因此可以选择避免与代码直接交互的解决方案(例如,需要在代码本身中实例化应用程序)。

2 个答案:

答案 0 :(得分:1)

我建议使用Elmah。它是一个非常酷且易于使用的错误记录框架,尤其适用于asp.net。在那里查看http://code.google.com/p/elmah/

答案 1 :(得分:1)

您可以尝试在应用程序池进程上使用adplus,并在应用程序抛出异常时生成转储。例如,执行以下命令:

 ADPlus -crash -iis -o c:\dumps

将生成IIS和当前正在运行的所有MTS / COM +包的内存转储。默认情况下,它会在第一次机会异常(因此可能已处理的异常)和第二次更改异常(未处理的异常)上的完全转储时创建小型转储。如果您只对一个特定的池感兴趣,可以使用它的PID(here是如何获取它的信息)并运行:

ADPlus -crash -p <pid> -o c:\dumps

获得转储后,您可以将其加载到Visual Studio中并尝试调试您的应用程序(请记住正确配置您的符号路径)