明日、IIS を使用するクライアント用のサイトを公開します。
私はサイトを一般に公開し(申し訳ありませんが、メッセージを更新しています)、アップグレードを実行した後、クライアントが週末にテストできるようにします.
成功した場合は誰にでも公開し、そうでない場合はロールバックします。
一般向けに「非公開」のサインを出し、残りはテスターに公開する最も簡単な方法は何ですか?
IIS経由でリダイレクトします。IISで新しいWebサイトを作成し、「申し訳ありませんが更新しています」というメッセージをDefault.aspxに配置します。次に、実際のサイト(80から別のサイト(6666)に移動)と「メンテナンス」サイト(80に設定)の間でポートを切り替えます。
次に、テスターにyoursite.com:6666にアクセスするように指示します。
次に、「メンテナンス」サイトを削除した後、実際のサイトを80に戻します。
ASP.NET 2.0+ の "アプリ オフライン" 機能について言及する価値があると思いました。(はい、質問者がテストのためにアプリを残したいと思っていることは理解していますが、別のニーズでここに来る可能性のある後の読者のためにこれを書いています)。
全員のためにアプリケーションをオフラインにしたい場合(たとえば、サーバーのメンテナンスを行うため) には、非常に簡単なオプションがあります。ASP.NET 2.0 以降で行う必要があるのは、次の名前のファイルを配置することだけです。
app_offline.htm
...ASP.NET アプリケーションのルート ディレクトリ。そこに適切な「後で戻ってきてください」というメッセージを入れます。それでおしまい。残りは ASP.NET ランタイムが行います。
テスターがログインすることを要求します。ログインページを非表示にして、表示するための直接リンクが必要になるようにすることもできます。次に、ログインしていないすべての人について、メッセージを表示するページにリダイレクトします。
IISで別の「サイト」を起動し、プライマリサイトのホストヘッダーをキャッチします。「メンテナンスのためにダウンしています」というカスタムの307/503/404ページを使用するか、何らかのURL書き換えを使用して、ユーザーを単一の静的ファイルにリダイレクトします。
実際のサイトのhost-header-bindingを、開発者が使用するdev.domain.comやtesting.domain.comなどの他のサイトに切り替えます。
または、IPでブロックし、カスタムの「未承認」ページで訪問者にメンテナンスを控えていることを伝えます。
いくつかのオプションがあります。
私が以前に使用したいくつかの方法:
ログインページと、サイト内のすべてのページにまたがるインクルードファイル (通常はすべてのファイルに含まれているため、DB 接続) があり、有効なログインセッションを確認します。ログインしていない場合は、メンテナンスのためサイトがダウンしているというメッセージが表示されます