22

私の Web サイトの一部のリクエストが、Session モジュールの RequestAcquireState 状態で停止し始めることがあります。そのスパイラルが始まると、すべてのリクエストがタイムアウトになり、影響を受けるサーバーで IIS を再起動する必要があります。

私はそれをよく調べましたが、唯一の結論は、アプリケーションがセッションに保存されたユーザー データにアクセスしようとしているときに、どういうわけかデッドロックが発生しているということです。

この問題を解決するために考えられる唯一のオプションは、アプリケーションでのセッションの使用を減らすか停止することです。これは間違いなく計画の一部ですが、完了するまでにはしばらく時間がかかります。

6 台のマシンで IIS 7.5 を実行し、アウト プロセス StateServer とサーバー アフィニティをロード バランスで実行しています。

この問題を回避する方法、またはセッションを完全に削除せずに修正する方法についてのヒントはありますか?

IIS ハング プロセス

4

4 に答える 4

6

答えは Hotfix Rollup 2828841 for .NET Framework 4.5 です。すべての説明は次のとおりです。

http://forums.asp.net/t/1888889.aspx/2/10?Question+regarding+a+possible+bug+within+NET+4+5

そしてここにダウンロードリンク

IIS 7.5 Windows Server 2008 rs x64 、多くの ajax リクエストを含む asp.net Web フォーム アプリケーションで動作します。

于 2013-05-15T21:42:03.673 に答える
0

それらのユーザーが別の実行時間の長いリクエストを持っている可能性はありますか?積み上げられているリクエストは実際には 2 番目のリクエストですか? デフォルトでは、ASP.NET は要求が完了するまでセッションをロックします。最初のリクエストが完了する前に 2 番目のリクエストが来ると、待機する必要があります。MVC を使用している場合は、コントローラーに属性を追加することでこの動作を変更できます。

[SessionState(SessionStateBehavior.ReadOnly)]

これにより、セッションが読み取り専用になり、ロック動作が削除され、後続のリクエストを処理できるようになります。

于 2014-04-02T15:53:06.277 に答える