我正在为我的应用程序使用 ASP.Net4 MVC2。在应用程序响应之前,第一个使用该应用程序的人通常会经历很长时间的等待。之后,该应用程序非常敏感。如果应用程序空闲 15 分钟,同一个人或下一个使用该应用程序的人将再次经历漫长的等待。看起来应用程序在空闲 15 分钟后编译。有人可以告诉我应该在哪里解决问题吗?谢谢。
问问题
534 次
3 回答
8
几乎可以肯定的是,您遇到的是应用程序池回收。确实在池被回收后重新初始化需要一些时间,但它不应该花费那么长时间。“漫长的等待”有多长时间?一秒?一些?在 IIS 中,您可以配置应用程序池回收的频率。对于 IIS 7,右键单击您的应用程序池并选择“高级设置”,然后查看“空闲超时”。您可以考虑增加此值。(或设置为 0 以完全禁用。)
于 2010-10-15T00:41:49.173 回答
6
在开始实施解决方案之前,您需要先准确诊断问题。首先必须验证它是否实际上是应用程序池回收。您可以先将此部分添加到您的 web.config 中:
<healthMonitoring>
<rules>
<add name="Application Lifetime Events Default"
eventName="Application Lifetime Events"
provider="EventLogProvider"
profile="Default"
minInstances="1"
maxLimit="Infinite"
minInterval="00:01:00"
custom="" />
</rules>
</healthMonitoring>
每当 asp.net 自行回收时,它都会在 Windows 事件日志中记录一个事件。它还会给出回收的原因(例如,有人戳了 web.config 等)。如果是回收,那么你需要弄清楚它为什么要回收。是因为 IIS 无论如何都要这样做吗?是不是因为您的应用程序没有正确处理内存并且内存压力导致 asp.net 想要自行回收?这些问题必须首先回答。
首先通过添加到上面的配置和原因来确定它是否是循环的。得到答案后,您可以检查内存等。
于 2010-10-15T03:27:42.397 回答
0
看看 IIS7 应用程序预热扩展。
于 2010-10-27T14:32:24.057 回答