2009-02-12 101 views
1

我連接到一個遠程SQL Server實例與下面的連接字符串遠程連接需要Sql Server Agent嗎?

「網絡庫= DBMSSOCN;數據源= xx.xxx.x.xxx,1433;初始目錄= MyDatabase的;用戶ID = MyUserId;密碼= MyPassword;連接超時= 120;「

  1. SQL Server瀏覽運行
  2. 本地和遠程連接是使用TCP/IP只允許

應用隨機連接失敗理由如下SQLEXCEPTION

TCP提供程序,錯誤: 0 - 連接嘗試失敗,因爲連接方在一段時間後沒有正確響應,或由於連接的主機未能響應而建立連接失敗

代碼連接如下

using (SqlConnection connection = new SqlConnection(m_ConnectionString)) 
{ 
    connection.Open(); // falls over here 
} 

我想到了防火牆配置端口1433,但爲什麼會在防火牆有時允許連接,有時不?

是否需要運行Sql Server Agent?如果是的話,爲什麼MSDN上的Sql Server Agent的描述在這方面不明顯?

謝謝!

編輯:嘗試添加在防火牆上的明確規則,開闢1433和到目前爲止好,但可能是隨機性再這樣很難說,如果我解決或尚未

回答

2

沒有,SQL Server代理不需要運行。 SQL Server代理只需要在SQL服務器上執行計劃任務。

這可能是一個網絡問題。你可以ping服務器嗎?如果是這樣,嘗試用/ t連續ping它,看看是否所有數據包都到達。

這也可能是SQL服務器負載的問題。服務器是空閒還是負載不足?

您可以在SQL服務器上或同一局域網上本地測試應用程序以查看問題是否存在?

+0

嘗試過連續ping命令,沒有失敗,響應從任何地方38 - 250毫秒。 Sql Server將處於持續負載下,因爲它也有7個數據庫運行Sitecore安裝和一個持續使用的圖像元數據庫 – 2009-02-12 17:13:41

1

那麼你不需要現在運行SQL Server代理,錯誤表明你正在從場景中獲取一個超時。

您可能被阻止的原因有很多。也許防火牆被配置爲一次只允許一個端口上的一定數量的連接。或者數據庫本身限制了連接的數量。您的互聯網速度很慢,您正在等待120秒。名單繼續。 :)