7

たまに私のコードが遭遇する

System.Data.SqlClient.SqlException
The service has encountered an error processing your request. Please try again.
Error code 40540. A severe error occurred on the current command.
The results, if any, should be discarded.
Class 20
Number 40197

それはめったに起こりません。通常、1、2分で消え、確実に再現することはできません。場合Error codeによっては、以外の数値になることもあり40540ます。

私は少しグーグルで検索しましたが、通常はSQL Serverのバグによってトリガーされ、再現可能であるように見えます。

私には2つの選択肢があります-クエリを再試行するか、それを致命的なものとして扱い、一生懸命に壊します。問題が実際に何であるか、そしてクエリを安全に再試行できるかどうかをよりよく理解したいと思います。

このエラーが発生したときにクエリを再試行しますか?

4

2 に答える 2

6

クイックグーグル検索は私にこれを与えました。

サービスでリクエストの処理中にエラーが発生しました。もう一度やり直してください。エラーコード%d。このエラーは、ソフトウェアまたはハードウェアのアップグレード、ハードウェア障害、またはその他のフェイルオーバーの問題が原因でサービスがダウンした場合に発生します。SQLデータベースサーバーに再接続すると、データベースの正常なコピーに自動的に接続されます。エラー40540のメッセージ内にエラーコード40143および40166が埋め込まれている場合があります。エラーコード40143および40166は、発生したフェイルオーバーの種類に関する追加情報を提供します。エラーコード40143および40166をキャッチするようにアプリケーションを変更しないでください。アプリケーションは40540をキャッチし、リソースが使用可能になり、接続が再確立されるまでSQLデータベースへの再接続を試行する必要があります。

詳細については、こちらをご覧ください。アプリケーションは40540をキャッチし、リソースが使用可能になり、接続が再度確立されるまでSQLデータベースへの再接続を試行する必要があると表示されます。

個人的なメモですが、SQL azureはスロットルが簡単で、割り当てられたリソースを制御できないため、使用しないことをお勧めします。私がしたことは、紺碧の仮想マシンにSQLサーバーをインストールし、それをアプリケーションで使用することでした。

これがお役に立てば幸いです。

于 2013-02-11T13:29:27.343 に答える
1

同様のエラーが発生しました:そして、http://social.msdn.microsoft.com/Forums/en-US/bbe589f8-e0eb-402e-b374-dbc74a089afc/severe-error-in-current-command-duringの回答に従いました-問題を解決したdatareaderread 。

looping読者を避けてください。にデータをロードするDataTable

DataTable table = new DataTable();
table.Load(reader);
reader.Close();
于 2013-12-10T16:02:03.103 に答える