2010-07-28 3 views
8

У меня есть служба WCF, установленная на IIS7. Я заметил, что первый вызов моей службы всегда очень медленный. Последующие вызовы намного быстрее & приемлемо.Работа WCF Медленная для первого вызова

Если в течение некоторого времени никаких вызовов в службу не поступает, он снова переходит в спящий режим. После этого следующий звонок снова занимает много времени.

Какие-либо средства правовой защиты для этой проблемы?

ответ

12

Это связано с управлением процессом в IIS. Когда нет вызовов в течение определенного периода времени, IIS освобождает ресурсы и останавливает процесс. Вот почему вы можете заметить, что он медленный для первого запроса и запросов после долгой задержки. Потому что, хотя первый запрос или после длительного периода молчания IIS загружает все с нуля. JIT complier run и т. Д.

Также обратите внимание: Когда вы размещаете службы WCF в IIS, службы WCF пользуются всеми функциями приложений ASP.NET. Вы должны знать об этих функциях, потому что они могут вызвать неожиданное поведение в мире сервисов. Одной из основных особенностей является рециркуляция приложений, включая рециркуляцию доменов приложений и переработку технологического процесса. С помощью консоли управления IIS вы можете настроить различные правила, когда хотите, чтобы рециркуляция произошла. Вы можете установить определенные пороговые значения в памяти, по времени и количестве обработанных запросов. Когда IIS перерабатывает рабочий процесс, все домены приложений в рамках рабочего процесса будут переработаны, а

Если вам нужен автоматического запуск: Диспетчер управления Windows Service позволяет установить тип запуска на автоматический, так что, как вскоре после запуска Windows служба будет запущена без интерактивного входа в систему. Таким образом, вы можете использовать службу Windows как хост.

Более подробную информацию вы можете найти в Hosting and Consuming WCF Services.

+0

спасибо Инкогнито об ответе и ссылке. о коэффициенте принятия, я не получал никаких решений по моему предыдущему вопросу, который помог мне, чтобы результат в отношении 0% принимал –

+0

@Sharjeel Согласен Я действительно заметил, что :). – Incognito

3

Существует еще один подход, благодаря которому вы можете сделать это лучше. У нас есть какой-то процесс scehduled, который постоянно ударяет по нашему серверу каждые 5 минут с очень легкими запросами «извлечения», чтобы все серверы «горячи» (загружая большую часть требуемых DLL и т. Д.), Так что пользовательский интерфейс намного лучше.

Я согласен, что это не дурацкий доказательство, но все же это то, что вы можете рассмотреть, помимо увеличения настроек утилизации в IIS.

+2

+1 Разумная вещь. Может также использоваться для проверки работоспособности с помощью инструмента, такого как nagios. –

Смежные вопросы