web-dev-qa-db-ja.com

ASP.NET 2.0-app_offline.htmの使用方法

.NET 2.0アプリケーションのルート内に配置できるapp_offline.htmファイルについて読んだことがあります。このファイルは、本質的にアプリケーションをシャットダウンし、他のページの要求を無効にします。

ファイルをルートに配置しましたが、サイトはまだロードされています。 IISのデフォルトのドキュメントにアクセスし、それをapp_offline.htmに設定しても、サイトはまだロードされています(ただし、これはキャッシュの問題である可能性があります)

とにかく、これを使用して問題に遭遇した人はいますか?私は何か間違っていますか?

106
Jack Marchetti

過去に問題なくサイトをシャットダウン/更新するために、非常に便利なapp_offline.htmトリックを使用しました。

実際にIIS内で構成したWebサイトの「ルート」に「app_offline.htm」ファイルを配置していることを確認してください。

また、ファイルの名前が次のとおりであることを確認してください。app_offline.htm

このファイルの処理は(この特定の名前で)IIS自体ではなく、ASP.NETランタイムによって処理されるため、IISに他の変更を加える必要はありません。 (IIS v6の場合)。

ただし、このファイルをサイトのルートに配置すると、アプリケーションが強制的に「シャットダウン」され、「app_offline.htm」ファイル自体のコンテンツが表示されますが、既存のリクエストでは、実際のウェブサイトが引き続き配信されます。 newリクエストのみがapp_offline.htmコンテンツを取得します。

それでも問題が解決しない場合は、次のリンクで詳細を確認してください。

Scott GuのApp_Offline.htm

App_Offline.htmおよび「IEフレンドリーエラー」機能の回避

app_offline.htmは現在のリクエストを停止しますか、それとも新しいリクエストのみを停止しますか?

146
CraigTP

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>
46
Mark Richman

これは、IIS 6および7.x、および.NET 2、3、および4.xでも同じように動作することに注意してください。

また、app_offline.htmが存在する場合、IISは次のhttpステータスコードを返すことに注意してください。

HTTP/1.1 503 Service Unavailable

これはすべて設計によるものです。これにより、ロードバランサー(または何でも)がサーバーがオフラインであることを確認できます。

14
Jonesome

許可される可能性のある問題

私はこの投稿がかなり古いことを知っていますが、同様の問題にぶつかり、ファイルのスペルが正しくありました。

元々別の場所にapp_offline.htmファイルを作成してから、それをアプリケーションのルートに移動しました。私のセットアップのために、私は許可の問題がありました。

ウェブサイトは、あたかもそこにないかのように振る舞った。ファイルを移動するのではなく、ルートディレクトリ内に作成すると、問題が修正されました。 (または、プロパティ->セキュリティで権限を修正することもできます)

それが誰かを助けることを願っています。

10
Jeremy A. West

エクスプローラーでファイル名の拡張子が表示され、ファイル名が実際にあることを確認してください

app_offline.htm

じゃない

app_offline.htm.htm

3
nPcomp

app_offline.htmがIISの仮想ディレクトリまたはWebサイトのルートにあることを確認してください。

2
Andrew Hare

元の質問と非常によく似た問題が発生したため、解決に少し時間がかかりました。

他の誰かがMVCアプリケーションで作業していて、このスレッドに入る方法を見つけたら、適切な.Net aspnet_isapi.dllへのワイルドカードマッピングが定義されていることを確認してください。これを行うとすぐに、app_offline.htmは期待どおりに動作し始めました。


IIS 6の構成手順

IIS Application Propertiesで、仮想ディレクトリタブを選択します。

[アプリケーションの設定]で、[構成]ボタンをクリックします。

[ワイルドカードアプリケーションマップ]で、[挿入]ボタンをクリックします。

C:\ WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dllと入力し、[OK]をクリックします。

0
Peter Bernier