如何检查Asp.Net请求管道?
时间:2020-03-06 14:52:17 来源:igfitidea点击:
当我在Asp.Net应用程序的"内部"上测量请求时间并将其与应用程序的"外部"上的计时进行比较时,我有时会得到不同的值-1000-5000ms奇怪的开销。
也许请求在IIS前面排队了吗?
还是HttpModule中发生了奇怪的事情?
问题:是否有一种方法可以检查请求管道,以准确跟踪应用程序被击中之前所花费的时间?
解决方案
我们可以创建自己的模块并将其注册在顶部,以更精确地跟踪每个请求,但是一旦IIS将请求委派给ASP.NET ISAPI模块,该措施就会开始。为了获得更高的准确性,我们可以转到IIS日志。
我们可以在web.config文件中打开跟踪。该行应显示类似" <trace enabled =" true" pageOutput =" true" />`的内容。 MSDN页面在这里。
正如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/images/F18GU01.png
当我们单击每个页面的详细信息时,我们可以看到页面生命周期中每个事件花费了多少时间。这应该可以确定页面实际花费的时间超出了预期的时间。
[从http://www.brainbell.com/tutorials/ASP/Built-in_Handlers.html引用的图像]