0

我们在使用 Sql Azure 时遇到问题。我们在 Azure 上部署了一个基于 .Net 4.0/C# 的古老网站。一切都很好,除了我们开始在这里和那里开始超时或任何与数据库相关的东西开始给出错误。有几次它停止插入,DataSet.Fill 函数因超时或“未找到列”而失败。

据我了解,当 SQL Azure 可能正忙于响应我们的请求并中断其间的连接时,可能会重新启动或切换节点。但是,当出现此类错误时,它在最终客户端上看起来很糟糕。我们的数据库大小小于 1 GB,一次只有 10-15 个。所以我不认为我们的负载很重[因为 Azure 已经为 150 GB 数据库做好了准备,我们的数据库还不到其中的 1%]。

任何人都建议我们应该做些什么来避免这种错误,我们可以检测到这种即将发生的错误吗?

4

1 回答 1

1

您将需要使用瞬态故障处理,瞬态故障处理应用程序块是一个很好的起点。在使用 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 回答