5

誰かが私にこれについての詳細な答えを得ることができますか?

ASP.NET MVCでセッションレスコントローラーを使用する利点は何ですか?

4

2 に答える 2

12

一言で言えば:スケーラビリティ。セッションをまったく使用しない場合は、アプリケーションがステートレスであることを意味します。これはすばらしいことです。Webファームのシナリオでは、別のサーバーをスローするだけで、サイトの新しい負荷に取り組む準備が整います。プロセス外のセッション(SQLServerやStateServerなど)を使用することもできます。セッションはファームのすべてのノード間で共有されますが、この状態サーバーはサイト全体の賢明な単一障害点になります。

セッションには別の問題もあります。セッションに書き込むコントローラーアクションへの同じセッション(AJAX呼び出しを考えてください)に対して2つの並列要求がある場合、セッションはスレッドセーフではないため、これら2つの要求は単純にキューに入れられて順番に実行されます。

于 2011-03-29T06:48:08.507 に答える
12

セッションレスコントローラーを使用している場合は、同じブラウザーインスタンスからの同時リクエストを処理できます。それ以外の場合、ASP.NETは、デッドロックの問題やその他の競合状態を回避するために、ASP.NETセッションオブジェクトへのシーケンシャルアクセスを提供するために、受信時に要求をキューに入れます。

実際には、「セッションフル」コントローラーへの1つのリクエストと、「セッションレス」コントローラーへの複数のリクエストを同時に持つことができます。このパターンは、クライアントから「セッションレス」コントローラーへのAJAX呼び出しを使用して、長時間実行されるプロセス(「セッションフル」AsyncControllerを介して実装)を実装する際に役立ちました。サーバーが長時間実行するプロセス。

于 2011-03-29T06:52:41.207 に答える