Как «разогреть» (заполнить кеши и т. Д.) Службу WCF, размещенную в IIS, после переработки ApplicationPool? - PullRequest
0 голосов
/ 01 сентября 2010

мы размещаем службу WCF внутри IIS 6. ServiceHostFactory создает ServiceHost при появлении первого запроса к службе.В методе OnOpening () ServiceHost мы загружаем некоторые данные в кеш, реализованный как статическое свойство.

Поскольку загрузка данных занимает около 1 минуты, мы не хотим, чтобы «первый пользователь дня» ждал заполнения кеша.Проблема заключается в том, что ServiceHost и, следовательно, кеш уничтожаются при каждой переработке ApplicationPool.Есть ли возможность обнаружить утилизацию и пополнить кеш?Или есть другие лучшие практики?Я не могу поверить, что мы единственные, кто имеет эту проблему ...

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 01 сентября 2010

Если вы можете обновить до IIS7, есть встроенный API для прогрева. IIS: прогрев веб-приложений

0 голосов
/ 01 сентября 2010

Для размещения веб-приложений или служб с длительным временем запуска в IIS 6.0 я всегда использовал простое консольное приложение, которое пинговало веб-приложение. Это приложение запускалось планировщиком Windows каждые несколько минут. Это не хорошее решение, но это было самое простое, что я нашел. Если вы уверены в времени перезапуска AppPool, вы можете запланировать запуск такого приложения через несколько минут после перезапуска, а также добавить приложение в набор для запуска.

...