0

Sql Azure で問題が発生しています。Azure に古い .Net 4.0/C# ベースの Web サイトをデプロイします。あちこちでタイムアウトまたはデータベースに関連するエラーが発生し始めることを除いて、それはすべて良いことです。数回挿入を停止すると、DataSet.Fill 関数がタイムアウトまたは「列が見つかりません」で失敗します。

私が理解しているように、SQL Azure がリクエストに応答するためにおそらくビジーであり、その間に接続を切断し、おそらくノードを再起動または切り替えているときに発生します。ただし、このようなエラーが表示されると、エンド クライアントでは見栄えが悪くなります。私たちのデータベースのサイズは 1 GB 未満で、一度に 10 から 15 のデータが得られました。したがって、負荷が大きいとは思いません [Azure は 150 GB データベースの準備ができているため、私たちのデータベースはその 1% 未満です]。

このようなエラーを回避するために何をすべきかを提案する人はいますか?そのような今後のエラーを検出できますか?

4

1 に答える 1

1

Transient Fault Handlingを使用する必要があります。Transient Fault Handling Application Blockは、開始するのに適した場所です。Sql Azure のレガシ コードでリファクタリングする場合、SqlConnection および SqlCommand 拡張メソッドを使用する方が簡単であることがわかりました。

SqlConnection エクステンションの例:

var retryPolicy = RetryPolicyFactory.GetDefaultSqlConnectionRetryPolicy()
using(var connection = new SqlConnection(connectingString))
{
        connection.OpenWithRetry(retryPolicy);
        ///Do usual stuff with connection
}
于 2013-09-24T15:16:00.147 に答える