2016-03-24 102 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秒以上的時間,但很好。