gpt4 book ai didi

asp.net - iis 启动延迟与 aspx 页面

转载 作者:行者123 更新时间:2023-12-01 22:26:43 24 4
gpt4 key购买 nike

环境:Windows Server 2003; IIS 6、ASP.NET 2.0.50727

我对我们设置的全新网络服务器感到疯狂(请注意,这个问题不会发生在我们具有相同配置的其他网络服务器上)。第一次加载 ASP.NET 应用程序时,页面会挂起整整一分钟,然后才会在浏览器中显示该页面。加载第一页后,一切运行得非常快。

注1:您可能会说应用程序是第一次编译。但我已经排除了这种可能性。我将跟踪消息放在应用程序中的任何位置,并且所有跟踪消息都在请求页面的一秒钟内运行。因此,该应用程序会立即编译并运行。但是,当应用程序完成渲染页面并打印我的最后一条跟踪消息时,什么也没有发生。在将完成的页面沿 http 传输到用户的浏览器之前,IIS 正在幕后执行一整分钟的操作。

注 2:我们发现,在第一次点击应用程序并且运行正常后,如果我们等待一个小时,就会再次出现延迟。因此,IIS 的缓存中有一些内容会在一小时后清除,并导致我们的网站再次停止运行。

注 3:在每次测试之间,我们停止/启动 IIS,以强制其在加载应用程序时挂起。

注释 4:我们观察任务管理器以查看 IIS 是否处于峰值状态并占用大量资源来处理某些内容。但事实并非如此。在浏览器显示页面之前,我们确实看到了非常快的峰值,达到 50%,但在之前的 60 秒内,服务器上的使用率只有 1%。

注释 5:在另一个测试中,我创建了一个 HelloWorld.html 页面,这不会导致 IIS 挂起。因此,它与第一次通过 http 发送渲染页面时调用 ASP.NET 库有关。此外,由于应用程序已经编译并立即运行,因此只是 ASP.NET 将呈现的页面发送到用户浏览器的部分导致了延迟。

有什么想法吗?我们在这里是一个损失。我们所有其他网络服务器都以相同的方式设置并且工作正常,但这是一个新安装。那么一定有一个配置设置被遗漏了或者可能需要安装一些东西?

谢谢

布莱恩

最佳答案

如果您有权访问服务器,请确保应用程序池回收实际记录到事件日志中

cscript adsutil.vbs 获取 w3svc/AppPools/DefaultAppPool/LogEventOnRecycle

您可以将其设置为记录所有内容cscript adsutil.vbs 设置 w3svc/AppPools/DefaultAppPool/LogEventOnRecycle 255

See more here

然后检查是否有任何回收。

应用程序初始化、创建工作进程、线程、加载应用程序域和所有引用 dll 可能需要一些时间,这很正常,但 1 分钟的延迟可能是其他原因。

尝试在服务器上预编译应用程序,看看是否有帮助aspnet_compiler -m/LM/W3SVC/[站点 ID]/Root/[您的应用程序名称]

如果您想深入了解,可以检查事件跟踪 ETW。

  1. logman 查询提供程序
  2. 将 IIS/ASP.NET 相关的 Guid 保存到 iisproviders.txt 等文件中
  3. logman start ExampleTrace -pf iisproviders.txt -ets -rt
  4. 重现
  5. LogParser“从ExampleTrace中选择*”-i:ETW
  6. logman stop ExampleTrace -ets

您可以在这里找到更多信息 Troubleshooting appdomain restarts and other issues with ETW tracing

我还会使用 procexp 检查 w3wp.exe 是否有 TCP 连接超时,或者使用 Procmon 检查其他线索。

如果您有使用windbg的经验,那么您可以向应用程序发出请求,然后快速将调试器附加到进程

windbg -p [process id of the app pool]
.loadby sos mscorwks
g

然后从那里拿走它。如果出现异常、进程崩溃等,您应该能够捕获它......

一旦我们遇到了像这样奇怪的服务器问题,并且 .NET 重新安装解决了问题,但仍然不确定罪魁祸首是什么。

关于asp.net - iis 启动延迟与 aspx 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com