1

このエラーを時々スローするWebアプリケーションがあります…。

例外メッセージ:タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

管理スタジオを使用してもSQLサーバーに接続できない場合、サーバーがタイムアウトして接続できないと表示されます。

iisをリセットすると、すぐに元に戻ります。つまり、これは明らかに、これを引き起こしているのが私のコード内の何かであることを意味します。サービスブローカーを有効にして、LinqからSQLおよびSQLキャッシュの依存関係を使用するMVCサイトがあります。

私はコード全体でusingステートメントを徹底的に使用しているので、リークのある接続ではないことを確認してください。サーバーログを読むと、情報や警告イベントが非常に多く、システム管理者ではないため、何が起こっているのかを知るのが難しいため、事態はさらに混乱します。

それは私がASP.net4.xxxxxイベントID1309例外メッセージを取得することから始まります:タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。エラー

前回、以前のサーバーでこのエラーが発生したときにIISを再表示することで問題を解決したと思います。これは、この新しいサーバーでは利用したくないものです。

だから私の質問は、このタイムアウトエラーを減らすためにどのような手順を踏むことができますか?

どんな助けでも大歓迎です

Truegilly

4

1 に答える 1

1

このタイプの問題は通常、2つのうちの1つに要約されます。接続を適切に破棄していないか、データベースサーバーを完全に乗っ取っている大量のクエリが多数あります。

接続を適切に破棄しない場合、IISは、ガベージコレクションが実行されるか、タイムアウトになるまで、接続を適切に保持します。トラフィックが非常に少ないサイトの場合、問題は発生しません。

ただし、トラフィックがぶら下がっている接続の数がデータベースサーバーに接続しようとしている回数を超えるポイントに達すると、いくつかの考えられるエラーの1つが表示され始めます。期限切れのタイムアウトは1つです。正確なエラーは、フォールオーバーしている部分(接続プール、SQLサーバー自体など)によって異なります。

コメントした修正は一時的な解決策です。トラフィックが増え続けると(問題が発生する可能性があります)、コードの他の領域で問題が再び発生します。

于 2010-10-08T15:44:37.203 に答える