1

3 層アプリケーションで問題に直面しています。IIS と SQL Server を使用します。そして問題は、(リクエストが長いほど確率が高くなる) クライアントが IIS からの応答を受信しない場合があることです。SQL Server にアクティビティがない場合はハングし、SQL プロセスを強制終了しても例外で応答がありません。これらのハング後にデータを調べると、SQL 要求が成功していることがわかったので、問題は IIS にあるようです。残念ながら、アプリケーションがホストされている場所をあまり制御できず、問題を再現できません。この質問には多くの答えがあるかもしれませんが、少なくとも、どの方向に調査すべきかのヒントが必要です。
アップデート: 小さな仕事を行う同じサーバー上で実行されているアプリもあります。データベースに行ごとに約 100 行を挿入します。人為的に (xlock をテーブルに置いて) 約 10 分間実行させました。xlock を削除した後、IIS のプロセスは実行を継続し、これらの 100 行を正常に挿入しました。ただし、その後、制御がクライアントに返されることはなく、無期限に待機していました。長時間実行されたプロセスの後にクライアントに応答を返すときに、これが問題のようです。
ところで、これは Web サイトではなく、Remoting を使用する WinForms アプリです。

4

2 に答える 2

1

私は最終的に問題がどこにあるかを理解しました。アプリケーションは Web ファームで実行され、クライアントと IIS の間にバランサー サーバーがあります。バランサーのタイムアウトが小さすぎました。なんらかの理由で、.net リモーティングとの相性が悪く、クライアントにタイムアウト例外を返しません。この問題は、タイムアウトを増やすことで解決されました。

于 2013-01-25T08:02:32.623 に答える