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


120

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

ルートにファイルを配置しましたが、サイトはまだロードされます。IISの既定のドキュメントに移動して設定しましたがapp_offline.htm、サイトは引き続き読み込まれます(ただし、これはキャッシュの問題であった可能性があります)

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


これを説明するマイクロソフトのページはありますか?
Coops 2014年



app_offline.htmを使用して、Webアプリのコンテンツを非表示にし、一時ページを表示しました。しかし、app_offline.htmファイルを削除した後でも、元のデータを確認できません。彼女は私の質問です:stackoverflow.com/questions/42979042/...
naz786

回答:


160

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

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

また、ファイルの名前が正しいことを確認してください。 app_offline.htm

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

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

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

Scott GuのApp_Offline.htm

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

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


6
@JackM-問題ありません!実際、私は自分のWebサイトにファイルを残して、「xapp_offline.htm」のような名前を付けます。したがって、そこに座って何もしません。サイトの一部またはすべてをアップグレードする場合は、ファイルの名前を変更し、「x」プレフィックスを削除するだけです(これは通常FTP経由で行われます)。これにより、サイトがシャットダウンされ、アップグレードが行われ、ファイルの名前が "x"プレフィックスに戻されます。
CraigTP 2009

@JackMarchetti-これは、global.asaxルーティングを使用するASP.NET MVC Webサイトでも機能しますか?私はここですべての提案をチェックしましたが、これを機能させるのにまだ運がありません:(
Squig

以前のコメントの更新:これは現在機能しており、何らかのキャッシュの問題であったに違いありません。<CTRL> + Refreshを使用しましたが、おそらく別の場所にキャッシュされていました。
Squig、2013年

これを説明するマイクロソフトのページはありますか?
Coops 2014年

1
@CodeBlendまあ、ScottGuさんのブログへのリンクがかなりの公式ですが、私はほとんどの「公式」、Microsoftのページには、MSDNで、このものであろうとしますmsdn.microsoft.com/en-us/library/vstudio/...
CraigTP

47

app_offline.htmファイルが少なくとも512バイトの長さであることを確認してください。ゼロバイトのapp_offline.htmは無効です。

更新: ASP.NET/IISの新しいバージョンは、最初にこれを書いたときよりも動作が良いかもしれません。

更新2: ASP.NET MVCを使用している場合は、web.configに以下を追加します。

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
    </system.webServer>
</configuration>

1
空のファイルを含む正確なファイル名があり、それは機能しました-使用したURLに関係なく空白のページが表示されました
Coops

512バイトの制限の問題については、このリンクを確認してください。codeproject.com
Articles / 21319

これは、ページを独自のエラーメッセージに置き換えることができる古いバージョンのIEに特に当てはまります
ChewToy

Scott Guは彼のブログ
マット

2
MVCサイトをアプリのオフラインモードにするには、web.configを上記のものに完全に置き換えるしかありませんでした
Matthew Lock

14

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

また、app_offline.htmが存在する場合、IISは次のhttpステータスコードを返します。

HTTP/1.1 503 Service Unavailable

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


1
app_offline.htmメンテナンス期間中にユーザーにを表示したいので、ロードバランサーにサーバーがオフラインであると思わせないようにしてください。
ルーク

2
@Luke:503応答が役立つ理由のより良い例:「サイトがダウンしている」コンテンツをインデックスに登録することを決定するのではなく、Googleのウェブクローラーがウェブサイトが現在ダウンしていることを知っている(そして、サイトに大量の重複があるとフラグを立てる)コンテンツ)。また、CDNがオリジンがダウンしていることを検出でき、コンテンツのキャッシュを回避できる場合にも役立ちます。
ブライアン

10

考えられる許可の問題

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

最初にapp_offline.htmファイルを別の場所に作成し、それをアプリケーションのルートに移動しました。私のセットアップのため、権限の問題がありました。

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

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


4

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


それは間違いなく根にあります。私はinetput \ wwwroot [WebsiteDirectory] ​​\ app_offline.htmを持っています
ジャックマルケッティ

3

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

app_offline.htm

ない

app_offline.htm.htm


0

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

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


IIS 6の構成手順

IISアプリケーションのプロパティで、[仮想ディレクトリ]タブを選択します。

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.