私は、一部のコントローラのアクションが遅いサードパーティWebサービスを呼び出すアプリケーションを持っています。これらのアクションは、ページからのAJAX呼び出しを使用して呼び出されます。ASP.NET MVC:セッションロックを防ぐ方法は?
非同期コントローラを使用してASP.NETスレッドプールを解放することができます。これは素晴らしい方法です。しかし、セッションはどうですか?私がInProcセッションを使用し、「動作を遅くする」要求を行った場合、特定のユーザは、セッションが最初の「遅い」呼び出しによってロックされているため、アプリケーションに要求を行うことはできません。
はPHPで私は、次のように使用できる方法session_write_close()
があります:セッションデータに基づいてコントローラ/アクションにアクセスするには、アクションにユーザーの
- を
- 必要に応じてセッションに何かを書く
session_write_close()
と呼んでください。この時点セッションからは- それにアクセスし、私はセッション状態を無効にすることができますことを知っている(おそらくいくつかの非同期の方法で)
を私の遅い電話をかけることができ、この要求と同じユーザからの他の要求により閉じられていますコントローラーレベルで[SessionState]
属性を使用していますが、それは解決策ではありません。
アイデア?
を読み取ろうどんなリクエスト? –
ここに詳細があります:http://stackoverflow.com/questions/3666556/a-non-locking-in-process-asp-net-session-state-storeそしてここで私の類似したトピックに関する私の質問:http:// stackoverflow.com/questions/2438493/the-whole-site-is-blocked-while-one-page-is-waiting-for-blocking-operation-php – artvolk
ここに究極の記述があります:http://stackoverflow.com/質問/ 3629709/i-just-discovered-why-all-asp-net-websites-are-slow-and-i-am-trying-to-work-out – artvolk