Могу ли я сказать WAS запустить новый AppPool после перезапуска? - PullRequest
1 голос
/ 31 октября 2011

У меня есть этот сайт администрирования, который использует (Свободно) NHibernate для доступа к данным. Как было указано в другом месте , инициализация SessionFactory происходит медленно из-за создания объекта конфигурации. Предлагаемое решение состоит в том, чтобы сериализовать объект конфигурации на диск и затем использовать его до тех пор, пока не будет изменена сборка объекта или текущие изменения сборки инициализации.

Теоретически это звучит очень элегантно и привлекательно. На практике даже при использовании модели с 1 сущностью десериализация конфигурации занимает около 500 мс, а создание SessionFactory - еще 500 мс. (Это сравнимо со временем запуска без сериализации, но я подозреваю, что выигрыш будет очевиден, как только я добавлю туда больше сущностей.)

После того, как IIS перезапускает мой пул приложений, он не запускается снова до тех пор, пока не поступит новый запрос. Таким образом, с управлением перезапусками IIS по умолчанию (каждые 29 часов) и вероятным сценарием входа администратора на мой сайт администрирования один раз в день задержка в 1 с будет происходить почти каждый раз, когда администратор входит в систему, создавая впечатление медленного запуска сайта.

Итак, мне интересно, есть ли способ сказать IIS / WAS, чтобы фактически запустить заменяемый пул приложений как часть перезапуска, а не ждать, пока не поступит следующий запрос? Я понимаю, что это противоречит идея о том, что WAS пытается сохранить как можно меньше одновременно работающих пулов приложений, но это решит мою проблему (так как я предполагаю, что мой ServiceHostFactory + ServiceHost будет создан сразу после запуска пула приложений).

1 Ответ

0 голосов
/ 01 ноября 2011

Поможет ли вам функция автоматического запуска IIS 7 ?Кроме того, вы можете реализовать System.Web.Hosting.IProcessHostPreloadClient интерфейс, чтобы убедиться, что приложение работает, когда пул запущен (см. это сообщение в блоге для примера).

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