我有一个非常简单的页面:
<%@ Page Trace="true" %>
<html>
<head></head>
<body>
<h1>Hello World</h1>
<a href="/OtherPage.aspx"/>Other Page</a>
<p><%=DateTime.Now.ToString()%>
</body>
</html>
...但加载需要很长时间。没有数据库或 Web 服务调用来减慢加载速度。跟踪命令显示从开始 PreInot 到结束渲染的时间是 0.000049 秒,但页面本身需要几秒钟才能加载。这是我刚刚为这次测试创建的新网站,只有一个 web.config 和两个测试文件。web.config 中唯一的东西是访问控制:
<authorization><allow users="domain\me" /><deny users = "*"/></authorization>
那么 IIS 在这段时间内还能做什么呢?
答案1
开启时间失败的 IIS 请求跟踪!
我意识到这个请求实际上是不是失败,但您应该能够在跟踪上设置状态 200 以跟踪成功的请求。iis.net 上有一个教程它告诉您使用失败的请求跟踪来跟踪成功的请求,所以我认为它应该可以工作。
答案2
简单说一下我的情况:
进程监视器和失败请求跟踪都没有任何帮助。该网站几乎永远无法加载。
最后,等待了几分钟后,出现错误,提示“无法定位网络路径”。
原因是我输入了一个不存在的 SQL Server 实例的连接字符串,所以它不知何故一直在搜索服务器。最后,发生了超时。
解决方案只是在 Web.Config 内的连接字符串中指定正确的 SQL Server。
答案3
我在生产环境中的 IIS 上遇到了类似的应用程序无法使用的问题。一个带有一个应用程序池的 Web 应用程序运行速度极慢。
我只需在应用程序池的高级设置中将属性“启用 32 位应用程序”标志设置为 true,现在我就可以使用 3 个不同的应用程序池运行 3 个 Web 应用程序。
更多详细说明在这里: http://forums.iis.net/t/1189907.aspx/1
答案4
推出时间MS SysInternals 进程监视器。运行它,打开“删除已过滤事件”,然后设置过滤器“进程名称是执行程序”并监控。此外,拖动期间列移到左边,这样更容易看到。
我曾见过 IIS 7.5 在 32 位 ASP.NET 代码方面存在“问题”,但您的测试页面太小了,我无法相信它会导致问题,即使它使用的是 32 位 .NET。