Минимизировать время запуска asp.net

У меня есть несколько веб-служб (WCF), работающих в IIS. Когда службы нагреваются (загружаются), выполнение типичных запросов занимает около 0,5 секунды. Однако, когда приложение не является теплым (холодный запуск), первое обращение занимает около 20 секунд, прежде чем служба будет запущена и запущена. То же самое происходит при перезапуске пула приложений.

Я хочу сократить время холодного запуска для этой веб-службы. Вот некоторые действия, которые я уже выполнил:

  • Настроил пул приложений, чтобы он не запускался повторно через 20 минут, время простоя (чтобы приложение оставалось теплым). Это сводит к минимуму возникновение холодных запусков, но не ускоряет холодный запуск . перезапуск пула приложений теперь ограничен, но все равно происходит.

  • Изменен файл machine.config,

следующим образом:

<runtime>
    <!-- see http://msdn.microsoft.com/en-us/library/bb629393(v=vs.90).aspx -->
    <generatePublisherEvidence enabled="false"/>
</runtime>

Это сокращает время запуска с 20 до примерно 10 секунд.

  • Я пробовал использовать NGEN для предварительной компиляции сборок,

вот так

for %d in (*.dll) do ngen install %d

Это не t уменьшить время запуска (только усложняет развертывание)

Я действительно хотел бы еще больше сократить время холодного запуска. Какие варианты у меня есть для этого?

(на заметку: как лучше всего узнать, на что тратится время во время запуска? Как мне отслеживать, что происходит?)

10
задан oɔɯǝɹ 6 April 2011 в 11:38
поделиться