2011-12-05 49 views
3

我有一個測試Windows主機(50 MB),它正在爲我的ASP.NET Web應用程序提供服務,它工作得很好,但升級到100 MB後,我頻繁發生SQL Server超時錯誤當試圖遠程連接SQL Server從Visual Studio(即在我的網站的本地開發)時,我試圖手動增加SQL命令超時,並且我認爲它已被解決,但我認爲我的行爲是不正確的,當然我的網站觀看者在查看頁面時沒有問題,因爲對於最終用戶來說一切正常,我只在開發站點和通過VS2010訪問我的遠程數據庫時遇到問題,我是否應該考慮增加超時?我怎麼能全局增加超時?我應該爲每個SQL命令設置commandtimeout屬性嗎?是否有可能在連接字符串中增加它?當然,因爲我目前正在使用共享主機,我無法更改SQL服務器管理工​​作室設置手動增加SQL服務器命令超時

請指導我對此問題,因爲我對超時屬性沒有很好的感覺! 謝謝

+0

我會建議解決核心問題。這與100MB無關 - 它與一個重載的SQL服務器或網絡有關。超時對於維護良好的系統來說非常合理。 – TomTom

回答

7

我不認爲有任何簡單的方法來設置全球 - 例如,在連接字符串什麼的。

你能做什麼(不過這需要你的代碼,以工作的方式)是把你的命令超時到配置:

<configuration> 
    <appSettings> 
     <add name="CommandTimeout" value="120" /> 
    </appSettings> 
</configuration> 

,然後在你的代碼,讀取配置該值,並用它爲您SqlCommand類:

int commandTimeout = Convert.ToInt32(ConfigurationManager.AppSettings["CommandTimeout"]); 

using(SqlCommand cmd = new SqlCommand(..(your SQL statement)..., connection)) 
{ 
    cmd.CommandTimeout = commandTimeout; 
} 

有了這個,你至少可以調整超時,而無需更改代碼。