我有一台运行 IIS 7 的 Windows Server 2008,其中有多个不同的网站,每个网站都有自己的应用程序池。
偶尔,当无人查看网站时,这些网站中的每一个都会启动 w3wp.exe 进程并使用大约 50% 的 CPU 资源。
有谁知道这个的原因吗?有没有办法阻止这种情况,或者至少减少它,因为它会减慢正在使用的其他网站的响应时间。
所有网站都是运行.NET 4 和 MVC 2 或 3 的 asp.net MVC 应用程序。
谢谢
答案1
我首先要确认应用程序域没有重新启动。有时这是由于文件正在更改。
将其添加到位于以下位置的主 web.config 中:
C:\WINDOWS\Microsoft.NET\Framework\<version>\CONFIG or
C:\WINDOWS\Microsoft.NET\Framework64\<version>\CONFIG
<add name="Application Lifetime Events Default" eventName="Application Lifetime Events"
provider="EventLogProvider" profile="Default" minInstances="1"
maxLimit="Infinite" minInterval="00:01:00" custom="" />
答案2
考虑 GC。GC 背后的算法非常神秘,因此 GC 可能会在您认为不应该运行的时候运行。