IIS中动态内容的随机延迟

时间:2016-04-13 14:24:31

标签: caching iis iis-8 windows-server-2012-r2 windows-server

我有一个带有测试页面的ASP.NET网站,该页面提取了一些动态页面。通常,所有依赖项的加载时间非常快: enter image description here

但有时一个或几个页面的加载速度比通常慢得多: enter image description here 随机页面随机发生这种减速。重新加载测试页后,一切都恢复正常。

我没有明确地使用任何动态内容缓存,但似乎通常会缓存资源,但很少出现问题。

另外,我放了一个StopWatch来确定动态页面的执行时间。重置web.config后第一次所有页面都在20-50毫秒内执行,之后每次都执行(即使发生慢页加载的问题)它只需要1毫秒,所以我想问题是在IIS的一边。 我接下来应该检查什么?

规格:.NET 4.5,Windows Server 2012 R2,IIS 8.5。

提前致谢!

UPD: 感谢您的快速回复。这种滞后的主要版本是应用程序池回收。我需要提一下,每次第二次重新加载页面时都会出现延迟(当我反复点击F5时)。我几乎可以肯定,回收不会经常发生在服务器上。

1 个答案:

答案 0 :(得分:0)

这可能是由于IIS处理AppDomains所致。 IIS在AppDomains中托管应用程序,在这些AppDomains中,JIT编译器的工作方式与任何.NET应用程序一样。这意味着第一次使用页面/控制器时,JIT会编译代码,这需要时间。但是,与本地.NET应用程序不同,IIS偶尔会回收包含AppDomain的ApplicationPools以防止错误(和免费资源),当您再次加载页面时,它必须重新编译您的应用程序。