приложение компилируется каждые 15 минут - PullRequest
9 голосов
/ 15 октября 2010

Я использую ASP.Net4 MVC2 для своего приложения.Первый человек, использующий приложение, обычно испытывает долгое ожидание, прежде чем приложение ответит.После этого приложение довольно отзывчиво.Если приложение простаивает в течение 15 минут, тот же человек или следующий человек, использующий приложение, снова будут долго ждать.Похоже, что приложение компилируется после 15 минут простоя.Может кто-нибудь сказать мне, где я должен искать проблему, чтобы решить проблему?Спасибо.

Ответы [ 3 ]

8 голосов
/ 15 октября 2010

Это почти наверняка тот случай, когда вы испытываете утилизацию пула приложений . Это правда, что после повторной инициализации пула требуется некоторое время для повторной инициализации, но это не займет много времени. Как долго это "долгое ожидание"? Второй? Несколько? В IIS вы можете настроить периодичность повторения пулов приложений. Для IIS 7 щелкните правой кнопкой мыши пул приложений и выберите «Дополнительные параметры», а затем посмотрите «Время ожидания простоя». Вы можете рассмотреть возможность увеличения этого значения. (Или установите 0, чтобы полностью отключить.)

6 голосов
/ 15 октября 2010

Вам необходимо точно диагностировать проблему, прежде чем приступать к реализации решений. Сначала нужно проверить , если это, по сути, перезапуск пула приложений. Вы можете начать с добавления этого раздела в ваш 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>

Он будет записывать событие в журнал событий Windows в любое время, когда asp.net перезапускает себя. Это также даст причину для повторного использования (например, кто-то ткнул web.config и т. Д.). Если - это переработка, то вам нужно выяснить , почему это переработка. Это потому, что IIS настроен на это, несмотря ни на что? Это потому, что ваше приложение неправильно обрабатывает память, а нагрузка на память заставляет asp.net перезагружать себя? На эти вопросы нужно ответить в первую очередь.

Сначала определите, является ли это переработкой, добавив вышеуказанную конфигурацию и почему. Получив ответ, вы можете проверить память и т. Д.

0 голосов
/ 27 октября 2010

Посмотрите на расширение для разогрева приложений IIS7.

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

...