2016-03-24 64 views
2

由于今天出于某些未知原因并且仅在大约10分钟内,我们的一个Azure Web应用程序发生了与Azure SQL数据库可用性有关的崩溃。该网站的应用程序给YSOD说“等待操作超时。” Elmah显示了其他错误,例如“登录失败”和“当前命令发生严重错误,应该丢弃结果(如果有的话)。”Azure数据库上的“等待操作超时”故障排除

看着应用程序和数据库负载我真的不明白为什么。数据库被设置为S0级别,我们将其增加到S1,但即使这样也很奇怪。我们很少有数据库上的DTU利用率超过50%,Web应用程序达到35个同时请求。总的来说,它看起来不像是一个超出S0数据库功能的负载。

这一切都很糟糕,但是最大的问题是我该如何解决这个问题?这显然是数据库问题,但考虑到低负载,我不知道为什么。我当然不希望升级到这种尺寸的应用程序的每月300美元的高级水平。

有没有日志记录我可以设置这个呢?回顾发生了什么的一些方法,并就如何防止它再次发生得出明确的结论?

+0

偶尔会发生这种情况。我看不出为什么。我配置了一个RetryPolicy,并且使用默认的SqlConnetion ConnectionTimeout(在连接字符串中)似乎有所帮助。最终,我不认为MS保证与db的连接总是会被创建,并且你无法阻止它再次发生。 –

+0

奇怪的是,该应用程序一直运行的问题很少,直到大约3/17,在这一点上,我开始每天数十次重复发生间歇性问题。 –

+0

另外有趣的是,在某些浏览器上,该问题将持续发生,直到该网站的cookies被清除。这听起来像它可能与ServiceStack有关,以及它如何处理缓存。 –

回答

1

工具>选项>设计师>表和数据库设计

确保复选框顶部的“覆盖为表设计更新连接字符串超时值:”被选中,并增加交易超时需要。

或者取消选中该框并在连接字符串中指定超时。

我有同样的问题,它会起来启用索引,但总是在同一个问题上失败。默认值是30秒,我把它撞到900(15分钟),然后让它运行,它成功了。可能只需要30秒以上的时间,但很好。