asp.net アプリケーションの新しいバージョンをリリースするためのベスト プラクティスは何ですか?
現在アプリケーションを使用しているユーザーが心配です。新しいバージョンをプッシュすると、それらは追い出されますか? IIS は開いているセッションをどのように処理しますか?
ユーザーに影響を与えずに新しいリリースをプッシュする簡単な方法を探しています。
asp.net アプリケーションの新しいバージョンをリリースするためのベスト プラクティスは何ですか?
現在アプリケーションを使用しているユーザーが心配です。新しいバージョンをプッシュすると、それらは追い出されますか? IIS は開いているセッションをどのように処理しますか?
ユーザーに影響を与えずに新しいリリースをプッシュする簡単な方法を探しています。
複数の Web サーバーを使用して、負荷分散された環境を持っていないと思いますか?
その場合、あなたができる最善のことはおそらく次のとおりです。
ログを見て、トラフィックが最も少ないときに解決してください。
サイト全体のマスター ページがあると仮定して、特定の期間中にサイトのメンテナンスが行われることを警告するメッセージが表示されるように .master を変更します。マスター ページを使用していない場合は、ホームページやその他のトラフィックの多いページにメッセージを追加します。
指定された時間にapp_offline.htmlファイルをサイトのルートにドロップします。
変更をデプロイします。
ルートから app_offline.html ファイルを削除します。
あなたのホームページをリクエストしてください。
私は次のような傾向があります。
潜在的な IIS 設定の更新とは別に、これは私にとって最もうまくいく傾向があります。ライブに戻す前に、アプリケーションをテストする機会が得られます。
更新についてユーザーに警告または通知します(更新を行うときは、Webサイトのヘッダーに単純なテキストを配置するだけです)。更新を行うときは、アプリをオフラインにしてください。ルートフォルダーにapp_offline.htmファイルを置くだけで更新できます。次に、更新を行い、app_offline.htmを削除して、Webをオンラインに戻します。
Stack Overflow Podcast #63で、Jeff Atwood が、Stack Overflow がこれをどのように処理するかについて言及しています。彼は、低いピーク時間がいつであるかを正確に知っているという趣旨の何かを言い、サイトは基本的に数秒間オフラインになり、その後再開します.
提示された 2 つの代替案:
あまり知られていない忍者のトリックがあります。それは、2 つの運用環境を用意することです。新しい環境が稼働しているときに、DNS サーバーを変更して新しい環境を指すようにします。 DNS キャッシュが更新されると、通常 1 日以内に新しいサイトを使用します。1 日後、2 番目の (古い) 実稼働環境を安全にオフラインにすることができます。再度アップグレードするときは、その環境に再度 asf を切り替えることができます。
ダウンタイムをできるだけ短くするために、運用サーバー上に test.example.com のようなサブサイトを持つ新しい仮想ディレクトリを作成します。そこで動作する場合は、www.example.com 仮想ディレクトリ ファイル パスをポイントするように変更します。新しいディレクトリに移動してから、test.example.com を削除します。Cookie に依存しない、または RESTful な状態を使用している場合、アプリケーション プールが再起動されると、一部のユーザーの状態が失われます。ユーザーが準備できるように、これを行う前に必ずアナウンスしてください。他の人が指摘しているように、できるだけトラフィックが少ないときにこれを行うのが最善です。
Web アプリケーション モデルを使用している場合、新しい DLL をドロップするとアプリケーションが再起動するため、実行中の操作が中断され、セッション データとキャッシュが期限切れになります。Cookie はそのまま残るため、ユーザーはログインしたままになります。