我们在Sql上遇到了麻烦。我们在Azure上部署了一个古老的基于.Net 4.0/C#的网站。这一切都是好的,除了每次我们开始得到超时或任何与数据库相关的东西都会产生错误。当它停止插入时,DataSet.Fill函数会因超时或“未找到列”而失败。
据我所知,当SQL可能忙于响应我们的请求并中断之间的连接时,可能会重新启动或切换节点。但是,当出现这样的错误时,它在终端客户端看起来很糟糕。我们的数据库小于1GB的大小,我们一次得到10-15 .所以我不认为我们有沉重的负荷,因为Azure已经为150 GB的数据库做好了准备,我们的不到1%。
有人建议我们应该做些什么来避免这样的错误,我们能发现即将到来的错误吗?
发布于 2013-09-24 15:16:00
您需要使用临时处理,暂态故障处理应用程序块是一个很好的起点。当使用用于Sql的遗留代码进行重构时,我发现使用SqlConnection和SqlCommand扩展方法更容易:
SqlConnection实例:
var retryPolicy = RetryPolicyFactory.GetDefaultSqlConnectionRetryPolicy()
using(var connection = new SqlConnection(connectingString))
{
connection.OpenWithRetry(retryPolicy);
///Do usual stuff with connection
}https://stackoverflow.com/questions/18983708
复制相似问题