Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья поможет устранить проблему, из-за которой модуль инициализации приложений не работает для веб-сайта, настроенного для использования протокола SSL.
Исходная версия продукта: ASP.NET
Исходный номер базы знаний: 2843964
Симптомы
Модуль инициализации приложений, ранее известный как "Теплое приложение", не работает для веб-сайта, настроенного для использования SSL.
Причина
Такое поведение предусмотрено разработчиками.
Модуль прогрева отправляет запрос с помощью протокола HTTP, а не с протоколом HTTP, а не с протоколом HTTPS. Предлагаемое решение позволит HTTP-запросам в localhost из модуля прогрева, но он перенаправляется на HTTPS для остальных запросов, поэтому при проектировании этот модуль означает, что модуль прогрева выполняет запросы по протоколу HTTP.
Решение
Чтобы обойти это ограничение, можно включить ПРОТОКОЛ HTTP (снимите флажок "Требовать ssl" в параметрах SSL диспетчера>IIS) и использовать правило перезаписи URL-адресов для перенаправления HTTP-запросов на HTTPS за исключением запроса, поступающего из модуля прогрения:
<rewrite>
<rules>
<rule name="No redirect on warmup request (request from localhost with warmup user agent)"
stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="localhost" />
<add input="{HTTP_USER_AGENT}" pattern="Initialization" />
</conditions>
<action type="Rewrite" url="{URL}" />
</rule>
<rule name="HTTP to HTTPS redirect for all requests" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>