wake-up-neo.com

Stellen Sie über TCP/IP eine Verbindung zu SQL Server 2008 her

Ich erhalte die folgende Fehlermeldung, wenn ich versuche, von SQL Server Management Studio aus eine Verbindung mit TCP/IP herzustellen. Ich brauche eine Schritt-für-Schritt-Beschreibung, um mein Problem zu lösen. Was ist hier los?

Cannot connect to 
===================================

A network related or instance specific error when a connection to SQL Server...
(provider: Named pipe-provider, error: 40 -  SQL Server)
(.Net SqlClient Data Provider)

------------------------------
For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=53&LinkId=20476

------------------------------
Error Number: 53
Severity: 20
State: 0

------------------------------
Program Location:

   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String Host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.ValidateConnection(UIConnectionInfo ci, IServerType server)
   at Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
10
MCOL

Normalerweise vergesse ich, dass selbst wenn Sie tcp in SQLServerNetwork-> Protocols for MSSQLServer als aktiviert markieren, Sie die potenziell anderen IP-Adressen für Ihren Server aktivieren müssen. Sogar ein Server mit einem einzelnen NIC hat mehrere IP-Adressen. 

  1. Klicken Sie auf die Protokolle für MSSQLServer wie oben aufgeführt.
  2. Aktivieren Sie dann im rechten Fensterbereich TCP/IP.
  3. Doppelklicken Sie nun auf TCP/IP, um ein Dialogfenster zu erhalten.
  4. Wenn Sie alle IP-Adressen für den Server abhören möchten Wählen Sie auf der ersten Registerkarte "Protokoll" im Feld [. Andernfalls 
  5. Wählen Sie die Registerkarte IP-Adressen aus, und aktivieren Sie die gewünschten IP-Adressen, indem Sie Enabled Auf Ja setzen.

enter image description here

17
Ed Ost

Was sehen Sie, wenn Sie die SQL Server-Netzwerkkonfiguration (Start Menu > Microsoft SQL Server > Configuration Tools > SQL Server Configuration Manager > SQL Server Network Configuration) überprüfen?

alt text http://i50.tinypic.com/5lpcpk.png

Ist das TCP/IP-Protokoll auf Ihrem Server wirklich aktiviert? Sie ist standardmäßig deaktiviert und bleibt in den meisten Fällen deaktiviert (sofern Sie sie nicht ausdrücklich aktivieren).

Die Verwendung einer IP-basierten Serveradresse bedeutet nicht, dass Sie eine Verbindung über das TCP/IP-Protokoll herstellen ... check http://www.connectionstrings.com/sql-server-2008 für eine Beispielverbindung Zeichenfolge, die wird TCP/IP verwenden:

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

Der Schlüssel ist der Network Library=DBMSSOCN;, mit dem der Code über TCP/IP verbunden wird.

13
marc_s

Es lohnt sich auch zu prüfen, ob der SQL Server-Browserdienst ausgeführt wird, da TCP/IP-Verbindungen diesen Dienst verwenden

8
IsolatedStorage

Schauen Sie sich www.connectionstrings.com an. Die Fehlermeldung sieht so aus, als würden Sie Named Pipes verwenden und nicht TCP/IP. Vergessen Sie nicht, dass Sie TCP/IP auf SQL Server-Servern explizit aktivieren müssen.

4
Sascha

Es gibt eine gute Vorgehensweise, um dies zu konfigurieren, einschließlich

  • Aktivieren des TCP/IP-Protokolls für den Datenbankserver
  • Remote-Verbindungen für den Datenbankserver aktivieren
  • Zulassen des TCP - Datenverkehrs durch die Firewall

at http://blogs.msdn.com/b/walzenbach/archive/2010/04/14/how-to-enable-remote-connections-in-sql-server-2008.aspx .

3
metamatt

Sind Sie zu 200% sicher, dass Ihr Server so eingerichtet ist, dass er Verbindungen über TCP/IP akzeptiert?

2
CResults

Folge dies:

Starten Sie -> Programme -> Microsoft SQL Server 2008 -> Konfigurationstools -> SQL Server-Konfigurations-Manager

SQL Server-Netzwerkkonfiguration -> Protokolle für [SQLInstanceName]

Klicken Sie mit der rechten Maustaste auf TCP/IP -> Aktivieren

0
cjk

Wenn TCP/IP bereits aktiviert ist, scheint Ihre Firewall die Verbindung zu blockieren. Öffnen Sie die relevanten Ports und es sollte funktionieren.

Sie sollten die Firewall an beiden Enden der Verbindung überprüfen.

0
Cromulent