应用程序每15分钟编译一次

时间:2010-10-15 00:07:50

标签: asp.net-mvc iis application-pool recycle user-inactivity

我正在为我的应用程序使用ASP.Net4 MVC2。使用该应用程序的第一个人通常会在应用程序响应之前经历漫长的等待。之后,该应用程序非常敏感。如果应用程序闲置15分钟,则使用该应用程序的同一个人或下一个人将再次经历漫长的等待。看起来应用程序在空闲15分钟后编译。谁能告诉我应该在哪里找麻烦拍摄问题?感谢。

3 个答案:

答案 0 :(得分:8)

几乎可以肯定的是,您所遇到的是应用程序池回收。确实,在池被回收后重新初始化需要一些时间,但它不应该花费那么长时间。 “漫长的等待”需要多长时间?一秒?一些?在IIS中,您可以配置应用程序池循环的循环次数。对于IIS 7,右键单击您的应用程序池并选择“高级设置”,然后查看“空闲超时”。您可以考虑增加此值。 (或设置为0以完全禁用。)

答案 1 :(得分: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想要自行回收?必须首先回答这些问题。

首先通过添加上述配置以及原因确定它是否为回收。一旦得到答案,你就可以检查记忆等。

答案 2 :(得分:0)

查看IIS7应用程序预热扩展。

http://www.iis.net/download/ApplicationWarmUp