簡體   English   中英

Azure SQL - 空閑 30 分鍾后連接自動關閉

[英]Azure SQL - connection closes automatically after 30 minutes being idle

每天都有一個舊的 .NET 桌面應用程序。 由於我們已將數據庫從舊的本地服務器移動到 Azure SQL,因此 SQL 連接出現問題。 Azure SQL 數據庫使用的是 S2 層。

空閑 15-30 分鍾后,應用程序無法再查詢 SQL,因為連接已關閉。 那個app的開發者告訴我,因為一些性能問題,他不得不一直保持SQL連接打開,不能改成開閉原則。 不幸的是,我必須處理這個問題,我不知道它必須保持開放的原因。

在閑置 15-30 分鍾后,應用程序收到以下錯誤:

從服務器接收結果時發生傳輸級錯誤。 (提供商:TCP 提供商,錯誤:0 - 現有連接被遠程主機強行關閉。)

他試圖將 ConnectionLifetime=0 添加到他的連接字符串中,但沒有幫助。 他也有這個錯誤:

SQL 在 TCP 上運行的服務器客戶端以 30 秒的間隔發送 keepalive。 (Keepalive 本質上是 0 len TCP 數據包)通常被認為是可忽略的流量。

有什么辦法可以使連接保持活動狀態或增加空閑后的超時時間? 任何想法或經驗將不勝感激!

該應用程序的開發人員告訴我,由於某些性能問題,他必須始終保持 SQL 連接打開

我很想知道需要長期持久連接的“性能問題”。 這不是一種雲友好模式,但有一種不需要更改代碼的變通方法。

假設連接被Azure SQL 網關(有 30 分鍾的空閑超時)斷開,建議使用重定向連接策略 以下是文檔中的實施摘錄。

重定向(推薦):客戶端直接與托管數據庫的節點建立連接,從而減少延遲並提高吞吐量。 對於使用此模式的連接,客戶端需要:

  • 允許從客戶端到區域中 11000 到 11999 范圍內端口上的所有 Azure SQL IP 地址的出站通信。使用 SQL 的服務標簽使其更易於管理。

  • 允許從客戶端到端口 1433 上的 Azure SQL 數據庫網關 IP 地址的出站通信。

  • 使用重定向連接策略時,請參閱 Azure IP 范圍和服務標簽 – 公共雲以獲取您所在地區允許的 IP 地址列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM