我收到用户的抱怨,我负责支持的ASP.NET Web应用程序间歇性地运行缓慢。如何记录页面生成时间数据,以便我可以量化是否是这种情况,如果是这样,哪些页面很慢,以及什么时间。我不希望这些信息显示给用户,我只想在每个页面请求的某个地方登录,然后我会每天或每周查看一次日志并将它们导入数据库或excel进行操作
我查看了一些讨论启用跟踪的SO问题,但我无法确定跟踪数据的记录位置。
这是一个不需要代码更改的额外点,因为这是一个生产系统,我希望能够使用开箱即用的任何性能计数器和现有日志功能,而不是自己动手如果可能的话。
答案 0 :(得分:2)
IIS日志,最简单的事情,也需要最少的更改。确保在IIS管理器中勾选“Time Taken”。日志的默认位置将在此处%SystemDrive%\ inetpub \ logs \ LogFiles,(您需要标识您的Web服务器实例)。以毫秒为单位的时间字段将附加到请求日志行。您可以将其导入Excel,或使用IIS Log analyzer等工具。
在web.config中Trace.axd ,确保已启用跟踪。
<system.web>
<trace enabled="true" localOnly="false" requestLimit="50" />
</system.web>
导航到应用程序,在那里做点什么。然后转到http://yourhost/yourApp/Trace.axd,它将从每个页面事件的开头显示时间。可以从那里收集一些信息。但它并不多。
答案 1 :(得分:0)
您可以将 httpModule 与事件一起使用: 你应该创建一个DLL并通过webconfig注册它与httpmodule部分。 现在你应该在ProcessRequest和PostREquestHandlerExecute中设置一个秒表。然后你会有整体时间。 你也可以使用trace但它的内部是页面本身....并绕过一些初始化事件......
ProcessRequest
..
..
..
page things...
..
..
..
PostREquestHandlerExecute