Beim Herstellen der Verbindung zu SQL Server tritt ein Fehler auf:
Details in Stack Trace sind:
===================================
Cannot connect to ServerName.
===================================
A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.) (.Net SqlClient Data Provider)
------------------------------
For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=233&LinkId=20476
------------------------------
Server Name: ServerName
Error Number: 233
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.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
at System.Data.SqlClient.TdsParserStateObject.ReadByte()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject, Boolean withFailover)
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.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType server)
at Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
NOTEich habe es versucht
schließen, erneutes Öffnen des SQL Server Management Studio.
schließen, VS erneut öffnen und Lösung neu erstellen
prozess des getöteten Arbeiters beim Zugriff auf die Datenbank.
anmeldeinformationen sind korrekt.
server pingen, um sicherzustellen, dass es nicht heruntergefahren ist.
Es stellte sich heraus, dass einige SQL-Dienste auf dem Server irgendwie angehalten wurden. Der manuelle Neustart des SQL Server-Dienstes war die Lösung.
Ich weiß, das ist dumm, hat aber trotzdem funktioniert. Vielen Dank @PareshJ für den nützlichen Kommentar.
Für SQL2008
Starten Sie den Server mithilfe des Konfigurationsmanagers neu.
Von hier :
Root Ursache: Die maximale Verbindung für Ihre SQL Server-Instanz wurde überschritten.
Wie man es repariert...!
- F8 oder Objekt-Explorer
- Klicken Sie mit der rechten Maustaste auf Instanz -> Klicken Sie auf Eigenschaften ...
- Wählen Sie "Verbindungen" im Bereich "Seite auswählen" links aus
- Den Wert auf 0 (Null) setzen für "Maximale Anzahl gleichzeitiger Verbindungen (0 = unbegrenzt)"
- Starten Sie die SQL Server-Instanz einmal neu.
Darüber hinaus stellen Sie sicher, dass die folgenden Optionen aktiviert sind:
Ich habe diese Fehlermeldung in der Codezeile erhalten, die SqlConnection.Open()
enthält und meinen .NET-Code als x64-Anwendung ausführt. Laufen als x86 verursacht keine Fehler.
Die Lösung bestand darin, die Option Force protocol encryption
Für TCP/IP in %windir%\System32\cliconfg.exe
Zu deaktivieren.
SQL 2016-Lösung/Workaround hier (könnte auch in früheren Versionen funktionieren). Dies funktioniert möglicherweise nicht oder ist nicht in jeder Situation angemessen, aber ich habe den Fehler behoben, indem ich meinem Datenbankbenutzer Lese-/Schreibschemata wie folgt in SSMS gewährte:
Datenbank> Sicherheit> Benutzer> Benutzer> Eigenschaften> Eigene Schemas> check db_datareader und db_datawriter .
Durch die Angabe der Datenbank (anstelle der Standardeinstellung) wird dieser Fehler manchmal behoben.