評價: 0 回應: 1 閱覽: 2012
置頂

connection timeout的問題

連線DB用的connectionstring 最近因為網頁很容易timeout

在拜神及爬文下知道web.config的connection預設timeout=15

因為把iis及db放在同一台  容易一直timeout  

一怒之下修改這個屬性改為150後

觀察到現在好像好了不少  

可是這個屬性有什麼差別?

15秒與150秒  

150不會timeout

15一直timeout  

這個屬性是越大越好嗎?

熱門回應

這個狀況下 有相關的timeout設定有三個


1. web.config 中的 httpRuntime executionTimeout 預設110秒

指IIS接到Request後 110秒沒有跑完輸出網頁 會直接給client 500 Error

https://msdn.microsoft.com/en-us/library/e1f13641.aspx


2. ConnectionString 中的 timeout 預設15秒 指的是SqlConnection.Open()的逾時

https://msdn.microsoft.com/en-us/library/
system.data.sqlclient.sqlconnection.connectionstring.aspx


3. SqlCommand.CommandTimeout 預設30秒 指的是SqlCommand執行時的逾時

https://msdn.microsoft.com/en-us/library/
system.data.sqlclient.sqlcommand.commandtimeout.aspx

你改到的是2. 可是這個會Timeout通常是web server與db server中的連線問題

(網路或是db loading太重)

而你的IIS跟db在同一台機器上 所以應該不會是這個問題


要先找出是SQL query太久還是AP端程式碼的問題

使用者可以等待的狀況下 修改相對應的timeout

或者用其他方式解決執行過久的問題

如果你用的是Visual Studio企業版 內建有 "Web效能與負載測試" 可以使用

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言