非常非常简单的 asp.net 页面需要很长时间才能加载

非常非常简单的 asp.net 页面需要很长时间才能加载

我有一个非常简单的页面:

<%@ 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。

相关内容