Asp.net Azure SqlException:服务器上的数据库当前不可用

Asp.net Azure SqlException:服务器上的数据库当前不可用,asp.net,azure,azure-sql-database,dapper,Asp.net,Azure,Azure Sql Database,Dapper,我们的网站已在Azure中运行数周,但未出现以下错误: SqlException:服务器“server”上的数据库“Database”当前不可用 可用。请稍后重试连接。如果问题 如有疑问,请联系客户支持,并向他们提供该课程 “guid”的跟踪ID 终于有一天,有超过2K的活跃(并发)用户。这是我能在某处找到的。虽然我们没有使用EF,但我们使用的是Dapper。我不知道如何调试我们的应用程序来找出问题的原因,而现在问题已经两天没有出现了,这就更难了。我肯定需要留意,我需要你们,任何提示,关于我应该

我们的网站已在Azure中运行数周,但未出现以下错误:

SqlException:服务器“server”上的数据库“Database”当前不可用 可用。请稍后重试连接。如果问题 如有疑问,请联系客户支持,并向他们提供该课程 “guid”的跟踪ID


终于有一天,有超过2K的活跃(并发)用户。这是我能在某处找到的。虽然我们没有使用EF,但我们使用的是Dapper。我不知道如何调试我们的应用程序来找出问题的原因,而现在问题已经两天没有出现了,这就更难了。我肯定需要留意,我需要你们,任何提示,关于我应该研究的地方,我需要做什么来确定问题的原因,并可能修复它。

听起来你需要通过某种瞬时故障处理机制来处理瞬时故障。下面是一篇提出类似问题的帖子: 大卫的回答与我们处理这个问题的方法相似

这里是另一个链接,指向一些类似于David的代码和我们的解决方案的代码,以帮助您了解它


当我们第一次迁移到SQLAzure时,我们也遇到了类似的问题,但通过为临时连接实施回退重试逻辑,它在几秒钟后恢复的大部分时间都会出现问题

我们使用处理暂时性错误,但这会导致更大的问题-即,如果您达到SQL连接限制(),只有重试逻辑


如果它一个月只发生一次,我就不做了,只是优雅地处理它。另一种选择是创建一个避免在某些错误上重试的方法,但它仍然可能弊大于利。

这种情况偶尔会发生在我们身上—到目前为止,我们一直忽略它。我猜这是SQL Azure端的一些临时维护过程。@sharptooth在您的服务器上多久发生一次?你有没有记下你有多少用户?维修,这可能是我告诉团队的原因之一,但我希望有人能证实这一点。而且至少停机半个小时对用户来说是不好的,尤其是用户抱怨的。没有什么比半个小时更糟糕的了——通常是几秒钟。它可能每月发生一次,与应用程序活动无关。明白了。谢谢你的反馈。这绝对是一个“预期”的暂时错误。此链接标识了其他主要链接: