当我在Asp.Net应用程序的“内部”测量请求时间并将其与应用程序的“外部”的时间进行比较时,我会得到不同的值 - 不时有1000-5000毫秒的奇怪开销。
也许这些请求在IIS面前排队?
或者在HttpModule中发生了什么奇怪的事情?
问题:是否有办法检查请求管道,以便在应用程序被命中之前准确跟踪时间?
答案 0 :(得分:2)
正如Dan所说,您需要在应用程序级别启用跟踪(web.config):
<!-- pageOutput enables trace output from the page itself -->
<system.web>
<trace enable="true" pageOutput="true" traceMode="SortByTime"/>
</system.web>
或者您可以在页面级别启用跟踪。这可以通过在Page指令中设置trace =“true”来完成。
<%@ Page Language="C#" Trace="true"
Inherits="System.Web.UI.Page" CodeFile="Default.aspx.cs" %>
可以从http://localhost/appname/trace.axd查看应用程序级别跟踪。这将显示请求列表:
当您单击每个页面的详细信息时,您可以查看页面生命周期中每个事件花费的时间。这可以帮助您确定您的网页所占用的时间超过预期时间。
[图片引自http://www.brainbell.com/tutorials/ASP/Built-in_Handlers.html]
答案 1 :(得分:1)
您可以创建自己的模块并在顶部注册以更准确地跟踪每个请求,但是一旦IIS将请求委托给ASP.NET ISAPI模块,该测量将开始。为了获得更高的准确性,您可以转到IIS日志。
答案 2 :(得分:0)
您可以在web.config文件中打开跟踪。该行应该说<trace enabled="true" pageOutput="true" />
之类的内容。 MSDN页面为here。
答案 3 :(得分:0)
您还想尝试Glimpse。它允许您查看请求管道中的模块以及许多其他信息。