我想添加一些记录,说明.Net Web应用程序处理请求所需的时间。
我的想法是使用Application_BeginRequest
和Application_EndRequest
,我可以在HttpContext.Current.Request.Path
中查看Application_BeginRequest
并记录开始时间和同一HttpContext.Current.Request.Path
时间通过Application_EndRequest
记录结束时间。但是在一个繁忙的网站上,我不能保证多次通话会弄乱这个想法(可能会出现一个呼叫,这个呼叫需要比相同的呼叫运行更长时间)。
所以我的问题是,是否有一些我可以在Application_BeginRequest
和Application_EndRequest
中检查将调用联系在一起的内容,是否有一些ID或其他内容?还是有一些我可以做的更简单的事情?
答案 0 :(得分:1)
我的解决方案是使用ta.speot.is
建议的HttpContext.Current.Items
在Application_BeginRequest
我创建System.Diagnostics.Stopwatch
并在其上调用.Start
。
将Stopwatch
添加到HttpContext.Current.Items
。
在Application_EndRequest
中从Stopwatch
检索HttpContext.Current.Items
并致电.Stop
我现在可以查看.Elapsed
,这样就可以了解我的时间。
当我发布我的问题时,我不知道HttpContext.Current.Items
特定于呼叫,但我现在也这样做 - 所以这提供了解决方案。