我同時使用Microsoft Windows Server 2003企業版在應用程序服務器上運行java和.net應用程序。這些正在被遷移到另一臺應用服務器Windows 2008 64位機器。從Windows 64位連接到SQL Server命名實例
所有應用程序都連接到同一個SQL Server 2005數據庫上的一個命名實例。
到目前爲止,我已經嘗試將應用程序完全按照原樣移動,而不會改變配置文件,從舊盒子到新盒子。
在新的應用程序服務器上,java和.net應用程序都不會連接到數據庫(命名實例)。
JDBC error message: "The connection to the named instance has failed. Error: java.net.SocketTimeoutException: Receive timed out."
The .net error message: "A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible."
如果我改變了DB配置到一個是在命名實例上它的工作原理新的應用程序服務器上不。
數據庫設置正確,因爲我們可以在舊的應用程序服務器上進行連接。我可以從新的應用程序服務器ping數據庫服務器。
是否有任何理由,這將無法在新的應用程序服務器上工作?
java connection string: "jdbc:microsoft:sqlserver://[dbservername];SelectMethod=Cursor;instanceName=[dbinstance]"
.net connection string: "Server=[dbservername]\[dbinstance];Database=Risk_DB;Uid=[user];Pwd=[pwd];"
UPDATE 每建議的回答後,我得到了實例端口號。我還安裝了SQL Server Management Studio,因此我可以根據問題點消除我的應用程序。從Management Studio中,如果我使用[servername] [instancename],則會在建立與SQL Server的連接時收到「網絡相關或特定於實例的錯誤...」消息但是,當我使用[servername],[港口]。不知道是否有辦法解決這個問題?
UPDATE#2將問題升級到基礎架構/服務器/網絡團隊。他們在新的應用服務器上禁用了Windows防火牆。 Presto,現在我可以連接到Management Studio中的[dbservername] \ [dbinstance],並且所有應用程序都在使用現有的配置文件。
只是爲了進一步確認要檢查的內容 - 可能是舊防火牆在防火牆中有明確的例外,允許它連接到數據庫服務器(這可能是我的IP地址或名稱)。如果是這種情況,請忽略我關於更改/修復SQL Server端口的建議,並與您的網絡管理員討論如何爲新框添加相同的防火牆例外。 –
也可能是SQL Server Browser服務在舊盒子上運行(並因此將命名實例請求動態路由到正確的端口),但未在新服務器上運行。 – Clark
@Clark您應該不需要應用程序服務器上的SQL瀏覽器服務來執行任何操作。我不認爲這個問題是100%明顯的,但我覺得應用程序已經移動,而不是數據庫。仍然可以連接到數據庫的「舊服務器」是舊的應用程序服務器。 –