2013-03-06 77 views
4

我試圖通過遠程計算機連接到MS SQL Server 2008 R2 Express Edition。 我收到此錯誤:連接到遠程Express Edition服務器時發生命名管道錯誤

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

在運行SELECT CONVERT(char(20), SERVERPROPERTY('InstanceName')) instancenameting

我得到NULL爲實例名稱。我已經啓動了SQL Browser服務,檢查TCP/IP是否啓用。

還能做些什麼?

+0

如果你可以以localhost的身份登錄它,你會得到什麼選擇@@ Servername? – 2013-03-06 19:54:02

+0

它顯示了一個不同的名稱,如IP-0A6E3175 – user2129794 2013-03-06 19:56:47

+0

您還沒有提到您如何連接到服務器:您是使用SSMS,另一個應用程序還是您自己的代碼?如果它是你的代碼,連接字符串是什麼樣的?該錯誤提到命名管道,而不是TCP/IP,因此可能會錯誤配置某些內容。有一個很好的概述解決這個錯誤[這裏](http://blogs.msdn.com/b/sql_protocols/archive/2007/03/31/named-pipes-provider-error-40-could-not-open -a連接到SQL-server.aspx)。 – Pondlife 2013-03-06 19:57:11

回答

2

使用

Data Source=IP-0A6E3175;Network=DBMSSOCN;... 

或者

Data Source=<<ip address>>;Network=DBMSSOCN;... 

您還需要確保TCP/IP是使用SQL Server配置管理器的主機上啓用,您不會阻止防火牆等

而只是踢,也請嘗試:

Data Source=<<ip address>>\SQLEXPRESS;Network=DBMSSOCN;... 
+0

我試着改變連接字符串,正如你所提到的......但沒有效果。TCP/IP和命名管道已經啓用,並且我試過用防火牆關閉 – user2129794 2013-03-06 20:37:49

+0

@ user2129794,但你現在收到了一條不同的錯誤信息,對吧?爲什麼你有'堅持安全信息...'? – 2013-03-06 21:07:16

+0

@ user2129794不能有「無效」錯誤消息應該更改爲不再提及命名管道。當使用命名管道時,SQL Server機器必須處於信任關係(即同一域)中,就像文件共享一樣。命名管道是一種類似的技術。 – 2013-03-06 21:07:23

1

除了亞倫的建議,以確保您的連接字符串使用TCP,運行SQL Server配置管理器和檢查以下內容:

  • 你有一個以上的實例嗎?
  • 啓用tcp/ip?
  • 如果您定位的實例不是默認實例,它將不會在端口1433上,而是某個動態端口。 Microsoft庫找出端口1434上使用SQL Server Browser的端口。您的防火牆還需要允許(UDP)。
  • 如果您的Express實例是唯一的實例,您可以更改爲使用端口1433.然後您不需要SQL Server Browser。
+0

由於'InstanceName'返回NULL,儘管事實上它是SQL Express(並且幾乎總是命名爲'SQLEXPRESS'),但它似乎是默認實例。 – 2013-03-06 20:41:49