この記事は、Secure Sockets Layer (SSL) を必要とするように構成された Web サイトでアプリケーション初期化モジュールが動作しない問題を解決するのに役立ちます。
元の製品バージョン: ASP.NET
元の KB 番号: 2843964
現象
以前は Application Warmup と呼ばれるアプリケーション初期化モジュールが、SSL を必要とするように構成された Web サイトでは機能しません。
原因
この動作は仕様です。
ウォームアップ モジュールは、ハイパーテキスト転送プロトコル セキュア (HTTPS) ではなく、ハイパーテキスト転送プロトコル (HTTP) を使用して要求を送信します。 推奨される回避策は、ウォームアップ モジュールから localhost への HTTP 要求を許可しますが、残りの要求については HTTPS にリダイレクトするため、ここで設計すると、ウォームアップ モジュールは HTTP 経由で要求を行うことを意味します。
解決方法
この制限を回避するには、HTTP (IIS マネージャー>SSL 設定 の下の Require SSL 設定をオフにして) を有効にし、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>