6

ユーザーがまだ接続している間に ASP.NET MVC アプリケーションの新しいバージョンを展開するためのベスト プラクティスを知る必要があります。

アプリケーションのモデルとコントローラーを含む .dll をデプロイするたびに、アプリケーションが再起動されます。また、(最終的には新しいライブラリを参照する) web.config をデプロイすると、アプリケーションが再起動します。

問題は、ユーザーをサイトから切断せずにアプリケーションの dll または web.config を更新するにはどうすればよいかということです。

4

2 に答える 2

1

インプロセス以外の別のセッション状態オプションを使用して、プロセスのリサイクルまたはシステムの再起動時にユーザーが存続できるようにしたい。

InProc : In-Proc モードでは、ASP.NET ワーカー プロセスのメモリに値が格納されます。したがって、このモードはこれらの値への最速のアクセスを提供します。ただし、ASP.NET ワーカー プロセスがリサイクルされると、状態データは失われます。

その他の ASP.NET オプションと他のサード パーティのセッション状態プロバイダーについては、ASP.NET セッション状態オプションを参照してください。

この質問では、Web サイトに負荷がかかり、プールのリサイクル後にアプリの時間が遅くなる場合に役立つ展開シナリオについても説明します。

理想的には、できる限りステートレスになり、セッションに近づかないようにする必要があります。たとえば、フォーム認証を介して現在のユーザーを追跡するためにCookieを使用できます。ただし、アプリケーション プールのリサイクル時にユーザーがセッション状態を失わないように、分散キャッシュ/セッション プロバイダーを使用してインプロセスを避ける必要があります。

于 2013-12-19T00:47:19.380 に答える
1

新しいセッション用に新しいサイトを展開し、古いセッションで既存のセッションを維持するのが最善だと思います。

以下にリンクされている「青緑の展開戦略」の記事は、それを行うためにいくつかの変更を加えることでハッキングできると思います(スティッキーセッションを使用して、「ドレイン」を発行する代わりに新しい接続を許可しないでください)。

https://kevinareed.com/2015/11/07/how-to-deploy-anything-in-iis-with-zero-downtime-on-a-single-server/

于 2016-11-16T05:33:06.447 に答える