如何检查Asp.Net请求管道?

时间:2008-09-29 11:56:42

标签: asp.net iis

当我在Asp.Net应用程序的“内部”测量请求时间并将其与应用程序的“外部”的时间进行比较时,我会得到不同的值 - 不时有1000-5000毫秒的奇怪开销。

也许这些请求在IIS面前排队?

或者在HttpModule中发生了什么奇怪的事情?

问题:是否有办法检查请求管道,以便在应用程序被命中之前准确跟踪时间?

4 个答案:

答案 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。它允许您查看请求管道中的模块以及许多其他信息。