Я пытаюсь использовать расширение инициализации приложений IIS 7.5 для настройки процесса прогрева для моего веб-приложения. Это подход, который я предпринимаю, чтобы свести к минимуму замедление, вызванное рециркуляцией пула приложений, что является проблемой хорошо объяснено в других вопросах.
Что мне хотелось бы, это получить преимущества инициализации приложения, без переназначения запросов где-либо еще.
Что я сделал до сих пор
Я следил за инструкциями IIS 8 для основного варианта использования, и он отлично работает! Я создал всплывающую страницу под названием app_starting.htm, и с помощью этого кода она отображается, пока приложение инициализируется:
<applicationInitialization remapManagedRequestsTo="app_starting.htm" skipManagedModules="true" >
<add initializationPage="/" />
</applicationInitialization>
Почему это не хорошо
Я хочу использовать инициализацию для ускорения запросов к веб-службе на основе REST, написанной с использованием ASP.NET MVC. Этот веб-сервис является бэкэнд для нескольких приложений. Когда они делают запрос к ресурсу (т.е. /client/1/addresses
), они не могут обрабатывать получение всплывающей страницы.
Что я пробовал
Я удалил атрибут remapManagedRequestsTo
. Однако сейчас, когда я запрашиваю ресурс во время инициализации, я получаю ошибку 500 до завершения инициализации. После этого ответы возвращаются к норме. Приложения, которые полагаются на эту услугу, также не будут хорошо реагировать на ошибку 500, поскольку инициализация не должна быть условием ошибки.
Что мне нужно
Не выполняя переназначения, я ожидаю, что поведение запроса вернется к нормальному состоянию. Даже если инициализация выполняется, другие запросы к приложению должны быть поставлены в очередь и ждать, пока не завершится инициализация.
Есть ли что-то, что мне не хватает? Могу ли я выполнить это?
Спасибо за помощь!