.NET 2.0アプリケーションのルート内に配置できるapp_offline.htm
ファイルについて読んだことがあります。このファイルは、本質的にアプリケーションをシャットダウンし、他のページの要求を無効にします。
ファイルをルートに配置しましたが、サイトはまだロードされています。 IISのデフォルトのドキュメントにアクセスし、それをapp_offline.htm
に設定しても、サイトはまだロードされています(ただし、これはキャッシュの問題である可能性があります)
とにかく、これを使用して問題に遭遇した人はいますか?私は何か間違っていますか?
過去に問題なくサイトをシャットダウン/更新するために、非常に便利なapp_offline.htmトリックを使用しました。
実際にIIS内で構成したWebサイトの「ルート」に「app_offline.htm」ファイルを配置していることを確認してください。
また、ファイルの名前が次のとおりであることを確認してください。app_offline.htm
このファイルの処理は(この特定の名前で)IIS自体ではなく、ASP.NETランタイムによって処理されるため、IISに他の変更を加える必要はありません。 (IIS v6の場合)。
ただし、このファイルをサイトのルートに配置すると、アプリケーションが強制的に「シャットダウン」され、「app_offline.htm」ファイル自体のコンテンツが表示されますが、既存のリクエストでは、実際のウェブサイトが引き続き配信されます。 newリクエストのみがapp_offline.htmコンテンツを取得します。
それでも問題が解決しない場合は、次のリンクで詳細を確認してください。
App_offline.htmファイルの長さが少なくとも512バイトであることを確認してください。ゼロバイトのapp_offline.htmは効果がありません。
PDATE: ASP.NET/IISの新しいバージョンは、最初にこれを書いたときよりも動作が向上する可能性があります。
PDATE 2: ASP.NET MVCを使用している場合、web.configに以下を追加します。
<?xml version="1.0"?>
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>
これは、IIS 6および7.x、および.NET 2、3、および4.xでも同じように動作することに注意してください。
また、app_offline.htmが存在する場合、IISは次のhttpステータスコードを返すことに注意してください。
HTTP/1.1 503 Service Unavailable
これはすべて設計によるものです。これにより、ロードバランサー(または何でも)がサーバーがオフラインであることを確認できます。
許可される可能性のある問題
私はこの投稿がかなり古いことを知っていますが、同様の問題にぶつかり、ファイルのスペルが正しくありました。
元々別の場所にapp_offline.htmファイルを作成してから、それをアプリケーションのルートに移動しました。私のセットアップのために、私は許可の問題がありました。
ウェブサイトは、あたかもそこにないかのように振る舞った。ファイルを移動するのではなく、ルートディレクトリ内に作成すると、問題が修正されました。 (または、プロパティ->セキュリティで権限を修正することもできます)
それが誰かを助けることを願っています。
エクスプローラーでファイル名の拡張子が表示され、ファイル名が実際にあることを確認してください
app_offline.htm
じゃない
app_offline.htm.htm
app_offline.htm
がIISの仮想ディレクトリまたはWebサイトのルートにあることを確認してください。
元の質問と非常によく似た問題が発生したため、解決に少し時間がかかりました。
他の誰かがMVCアプリケーションで作業していて、このスレッドに入る方法を見つけたら、適切な.Net aspnet_isapi.dllへのワイルドカードマッピングが定義されていることを確認してください。これを行うとすぐに、app_offline.htmは期待どおりに動作し始めました。
IIS Application Propertiesで、仮想ディレクトリタブを選択します。
[アプリケーションの設定]で、[構成]ボタンをクリックします。
[ワイルドカードアプリケーションマップ]で、[挿入]ボタンをクリックします。
C:\ WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dllと入力し、[OK]をクリックします。