Разогрев самостоятельной службы WCF - PullRequest
2 голосов
/ 21 июня 2011

Я видел несколько статей о разогреве службы WCF, когда она размещается в IIS (то есть о предварительной загрузке кешей, загрузке плагинов и т. Д.), В основном, о всех дорогих вещах, которые не нужны вашим пользователям.торчать, когда они отправляют свой первый запрос), но я не видел ничего эквивалентного тому, когда WCF размещается в службе .NET самостоятельно.

Кто-нибудь смог добиться этого?

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Если вы размещаете свой сервис, то вы можете создать клиент (то есть, используя ChannelFactory<T>) для сервиса сразу после того, как вы позвоните в ServiceHost.Open и выполните запрос «ping»;таким образом, если реализация службы выполняет некоторую большую нагрузку, это может произойти именно тогда, а не тогда, когда поступит первый «реальный» клиентский запрос.

0 голосов
/ 21 июня 2011

После того, как хост открыт, типы загружены, и вы готовы к работе. По моему опыту, задержка обычно создает клиентский канал. Дорогая часть - это создание фабрики каналов, поэтому я предпочитаю создать ее заранее и использовать GetChannel () для своих вызовов. Вам также придется договариваться о безопасности при первом подключении, чтобы вы могли изменить эти настройки, чтобы найти правильный баланс.

Я полагаю, что когда вы находитесь в IIS, вы пользуетесь услугой WAS . Главная особенность этой службы - не держать хост постоянно открытым, поэтому вы не используете ресурсы для каждой неактивной службы, поэтому требуется время для загрузки сборки, когда это необходимо. Самостоятельный хостинг распределяет все ресурсы для вашего сервиса и хоста, как только он запускается.

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