У нас есть система, в которой мы размещаем несколько приложений WCF в IIS. У некоторых из этих приложений немного больше времени запуска, занимающего пару секунд (больше, чем пользователи будут рады ждать). Как только он запущен и работает, все быстро, так что это действительно только время запуска.
Клиент также должен перерабатывать пулы приложений каждую ночь.
Есть ли способ разбудить все эти службы, чтобы время запуска не было проблемой для первого пользователя системы?
Первые мысли о том, как написать службу Windows, которая будет просто вызывать легкий метод для каждой службы каждые x (настраиваемые) минуты, чтобы поддерживать приложения в рабочем состоянии, но поскольку мы находимся в среде с балансировкой нагрузки, и приложениям требуются специальные заголовки хоста чтобы пропустить, мы всегда будем указывать адрес баланса нагрузки, что означает, что мы не сможем убедиться, что все службы во всех блоках кластера действительно запущены.
Поскольку одно приложение wcf в IIS может иметь только один заголовок узла, единственным другим способом будет настройка второго веб-сайта iis, указывающего на то же приложение. Я просто не уверен, что это поможет, так как это будет в другом контексте хоста.
другой вариант может заключаться в создании чего-то вроде расширения IIS (не уверенного, возможно ли это еще), которое могло бы вызывать каждую из наших служб, когда IIS или пул приложений действительно запускаются снова. (То, что замечает, когда пул приложений был переработан, но до первого запроса пользователя.
Любые идеи будут высоко оценены.
Спасибо
Gineer