WCF Performance Slow для первого звонка - PullRequest
8 голосов
/ 28 июля 2010

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

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

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

Ответы [ 2 ]

12 голосов
/ 28 июля 2010

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

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

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

Более подробную информацию вы можете проверить в Хостинг и использование служб WCF .

3 голосов
/ 22 июня 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...