Мне установили сервис WCF на IIS7. Я заметил, что первый вызов к моему сервису является всегда очень очень медленным. Последующие вызовы намного быстрее и приемлемы.
Если нет никаких вызовов, выполненных к сервису в течение некоторого времени, он снова засыпает режим. После этого снова долго занимает много времени следующий вызов.
Какие-либо средства от этой проблемы?
Это из-за управления процессами в IIS. Когда в течение определенного периода времени нет обращений, IIS освобождает ресурсы и останавливает процесс.Вот почему вы можете заметить, что он медленный для первого запроса и для запросов после долгой задержки. Потому что при первом запросе или после долгого молчания IIS загружает все с нуля. JIT-компилятор запускается и т. Д.
Также обратите внимание: Когда вы размещаете службы WCF в IIS, службы WCF пользуются всеми функциями приложений ASP.NET. Вы должны знать об этих функциях, потому что они могут вызвать неожиданное поведение в мире сервисов. Одной из основных функций является повторное использование приложений, включая повторное использование домена приложений и повторное использование процессов. С помощью консоли управления IIS вы можете настроить различные правила, если хотите, чтобы перезапуск происходил. Вы можете установить определенные пороги памяти, времени и количества обрабатываемых запросов. Когда IIS перезапускает рабочий процесс, все домены приложений в рабочем процессе также будут перезапущены
Если вам нужен автоматический запуск : Диспетчер управления службами Windows позволяет вам установить автоматический тип запуска, так что как только Windows запустится, служба будет запущена без интерактивного входа в систему на машине. Таким образом, вы можете использовать службу Windows в качестве хоста.
Более подробную информацию можно найти в Хостинг и использование служб WCF .