2011-10-13 89 views
1

我收到此錯誤試圖訪問我的網站:SQL連接錯誤

Exception information: 

Exception type: SqlException 

Exception message: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

這個錯誤在一整天發生6-7次。

有誰能告訴我爲什麼我得到這個錯誤?有什麼特殊的設置可以在我的SQL服務器端進行,以避免在我的Web應用程序中出現這種崩潰或問題?

+2

如果您發佈連接字符串(沒有密碼/用戶名稱of course),這將會有所幫助。 – JConstantine

+1

如果您的連接通常有效並且有時不起作用,那麼我可以考慮網絡問題(例如大流量)或高負載在服務器上,它不會響應新的連接嘗試。 – Marco

+0

可能是您的網站正在循環訪問數據庫,導致數據庫非常繁忙,以至於它在一段時間內不可用,並引發此類錯誤。爲此,您應該查看db – Badr

回答

0

這可以通過各種原因引起:在SQL Server中禁用

  • 遠程連接。
  • 防火牆設置
  • 壞連接字符串

微軟的這種KB-文章可以幫助... http://support.microsoft.com/default.aspx?scid=kb;EN-US;914277

編輯:請注意,如果你有一個本地數據庫的系統上進行開發數據通常通過共享內存進行交換。在測試和生產環境中,您有一個單獨的數據庫服務器,必須通過tcp協議與您的應用程序連接。

的ConnectionString:

data source=[SERVERADDRESS];initial catalog=[DBNAME];user id=[USER];password=[PASSWORD];persist security info=True;Pooling=True;Max Pool Size=1000;Connection Lifetime=30;

你真的必須設置池的大小和連接一輩子?我很少使用這個設置。他們可能會造成麻煩。特別是

Connection Lifetime

應該小心使用。在這裏閱讀更多信息http://blogs.msdn.com/b/angelsb/archive/2004/09/20/231963.aspx

2

如果此問題只是偶爾出現,那麼很可能您正在運行一個(或多個)命令的超時。

嘗試增加命令的CommandTimeout屬性的值。

也嘗試分析您的Sql服務器的長時間查詢。