27

IIS 7 および ASP.net 3.5 に適用されるため、ASP.NET セッション状態について理解する必要があります。

アプリケーションがインプロセス セッション状態を使用するように構成されている場合、複数のワーカー プロセスが存在しても問題なく動作しますか? つまり、ワーカー プロセスはセッション状態を共有しますか?

IIS 7 の既定の構成では、インプロセス セッション状態を使用し、最大 10 個のワーカー プロセスを割り当てます。その場合、このデフォルト構成が機能するはずです。問題が発生している ASP.NET MVC Web アプリを作成した会社と取引しています。彼らはサーバー環境を非難しています。主張は、10 個のワーカー プロセスのデフォルト設定を使用しているため、セッション状態が壊れているということです。これが実際に正確な主張であるかどうかを知る必要があります。ASP.NET アプリが既定の構成で動作しないことを知らなかったので、少し混乱しており、これを明確にする必要があります。

4

4 に答える 4

29

複数のワーカー プロセスを持つことと InProc を使用することは互換性がないようです。

これを参照してください:

アプリケーションの Web.config ファイルの processModel 要素で webGarden 属性を true に設定して Web ガーデン モードを有効にする場合は、InProc セッション状態モードを使用しないでください。その場合、同じセッションに対する異なる要求が異なるワーカー プロセスによって処理されると、データが失われる可能性があります。

于 2010-01-27T14:42:07.383 に答える
9

複数のワーカー プロセスは「Web ガーデン」です。インプロセス セッション状態は正しく機能しません。Web アプリに単一のワーカー プロセスを使用するか、セッション状態サーバーを使用するか、セッション状態に SQL Server を使用する必要があります。

于 2010-01-27T14:42:44.547 に答える
6

私が間違っているかもしれませんが、私の知る限り、デフォルトではアプリケーション ドメインごとに 1 つのワーカー プロセスしかなく、リクエストを処理する複数のワーカー スレッドがあります。この場合、In-Proc セッション状態は問題なく動作するはずです (デフォルト設定)。

ただし、複数のワーカー プロセス (ワーカー スレッドだけでなく、実際のワーカー プロセス) がある場合は、アウト プロセス セッション状態が必要です。

ASP.NET で複数のワーカー プロセスを持つことは、特に有効にする必要があるWeb ガーデン モードと呼ばれ、有効にする場合は、アウト プロセス状態管理が必要になると思います。このページのインプロセス モードの見出しの下にあるコメント ボックスを参照してください。

于 2010-01-27T14:38:22.827 に答える