[.NET]已超過連接 Timeout 的設定。在作業完成之前超過逾時等待的時間,或者是伺服器未回應

最近同事 馬克 詢問一個作業會發生「已超過連接 Timeout 的設定。在作業完成之前超過逾時等待的時間,或者是伺服器未回應」的錯誤。

查看 Profiler 的資訊,發現那個 Query 執行約 30 幾秒。

預設 ADO.NET 的 CommandTimeout 不是 60 秒嗎?

因為同事專案使用的是 LINQ to SQL,

查了一下,原來 LINQ to SQL,預設是 30 秒。

詳細可以參考:Change The Default CommandTimeout of LINQ DataContext 

而這問題有2個方式來解決,

1.調整 CommandTimeout 的時間,從預設的 30 秒,改大一點。

2.調整 SQL 的效能。

從上面 profiler 來看,read 蠻大的,除非查出的資料很大,不然就是沒有用到適合的 index 。

晚點,聽說客戶有加了 index ,就沒有問題了。

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^