it-swarm.com.de

Wie behebe ich den Fehler "Named Pipes Provider, Fehler 40 - Verbindung zu 'SQL Server' konnte nicht hergestellt werden?

Ich kann von einer Site aus keine Verbindung zu meiner Datenbank herstellen. Ich erhalte diesen Fehler:

Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden

Ich habe versucht, sowohl die lokale IP-Adresse als auch eine öffentliche Verbindung herzustellen. Ich habe es versucht:

  1. Ja, die Site kann mit dem Server kommunizieren
  2. Named Pipes/TCP ist aktiviert.
  3. Fernverbindungen sind erlaubt.
  4. Windows Firewall ist ausgeschaltet
  5. Es wurde eine Ausnahme für Port 1433 in der Windows-Firewall erstellt.
  6. Alles in SQL Server Configuration Manager aktiviert.

Was kann ich sonst noch tun?

116
Damien

Die Lösung dieses Problems ist sehr einfach:

  1. Gehen Sie zur Systemsteuerung.
  2. suche nach Dienstleistungen.
  3. Öffnen Sie das Fenster "Lokale Dienste" aus Ihren Suchergebnissen
  4. Starten Sie Ihren MSSQLSERVER-Dienst neu.

Screenshot der Schritte:

Screenshot of the steps

101
Kazem

Und die einfachste Lösung - überprüfe, ob dein Schrägstrich zurück ist ... 

Ich habe ungefähr eine Stunde damit verbracht herauszufinden, was mit SERVER/INSTANCENAME falsch ist, wenn alles richtig konfiguriert ist, Named Pipes, Benutzerzugriffsrechte ... und plötzlich hat es mich getroffen, es ist kein Slash, es ist ein Backslash (\).

Der Horror, die Schande ...

72
mizuki nakeshu

Nach der Installation von SQL Server ist dies ein dreistufiger Prozess:

  1. Benannte Pipes aktivieren SQL Config Manager -> SQL Server Network Consif -> Protokolle -> Named Pipes -> Klicken Sie mit der rechten Maustaste -> Neu starten

 named pipes enabled

  1. Starten Sie den Server neu SQL Config Manager -> SQL Server Services -> SQL Server (SQLEXPRESS) -> Klicken Sie mit der rechten Maustaste -> Neustart

  2. Verwenden Sie die richtigen Server- und Instanznamen (beide werden benötigt!) Normalerweise lautet dies .\SQLEXPRESS. Siehe beispielsweise den Screenshot im QueryExpress-Verbindungsdialogfeld.

 enter image description here

Hier hast du es.

34
Pompair

Ich hatte gerade den SQL SERVER 2012-Entwickler installiert. Beim Erstellen meines ersten SSIS-Pakets habe ich diese Pipes-Fehlermeldung erhalten, als ich versuchte, eine Datenverbindungsaufgabe in SQL Server 2012-Datentools im Feld Verbindungsmanager zu erstellen. Ich habe es mit Hilfe des Beitrags oben gelöst. 

Wenn Sie eine benannte Instanz auswählen und Ihre benannte Instanz SSQDatabase1 aufrufen, lautet der Name Ihres PCs PCX1. Sie müssen PCX1\SSQDatabase1 eingeben, nicht nur SSQDatabase1 Andernfalls wird der Named Pipes-Fehler angezeigt. 

17
rockz1

Ein Thread auf MSDN Social, Re: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht geöffnet werden. Es gibt eine ziemlich anständige Liste möglicher Probleme, die mit Ihrem Fehler zusammenhängen. Vielleicht möchten Sie sehen, ob einer von Ihnen das sein könnte, was Sie erleben.

  • Falsche Verbindungszeichenfolge, z. B. SqlExpress
  • Named Pipes (NP) wurde in der SQL-Instanz nicht aktiviert
  • Remote-Verbindung wurde nicht aktiviert
  • Der Server wurde nicht gestartet, oder Sie zeigen nicht auf einen echten Server in Ihrer Verbindungszeichenfolge
  • Andere Gründe wie falscher Sicherheitskontext
  • testen Sie grundlegende Konnektivitätstests zwischen den beiden Computern, an denen Sie gerade arbeiten
15
Khan

i Nur TCP/IP, VIA, Named Pipes im SQL Server Configuration Manager aktiviert. Mein Problem wurde gelöst. Weitere Informationen dazu finden Sie hier. Named Pipes beheben Fehler 40

9
Samanth

Verwenden Sie SERVER \\ INSTANZNAME .Der doppelte Backslash in meinem Projekt hat mein Problem gelöst.

7
Tamizh venthan

Danke an Damian ...

TCP/IP Named Pipes ... beide aktiviert

Web Config .... (für localhost)

<add name="FooData" connectionString="Data Source=localhost\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
5
Terri

Hatte das gleiche Problem. Verbrachte etwa 6 Stunden, als einige Server migriert werden mussten.

Die Lösung war so einfach wie der Neustart des Servers!

5
halloweenlv

in meinem Fall hatte ich einen Standalone-Server. Ich änderte den Standard-Port 1433 des SQL-Server-Ports in Configuration Manager in eine bestimmte Anzahl und startete den SQL-Serverdienst neu, um wirksam zu werden. Ich konnte mich über das Management Studio mit dem SQL-Server verbinden, wenn ich mich anmelde zum Server. aber ich konnte keine Verbindung von meinem lokalen Rechner über den SQL Server herstellen, ich bekam den Fehler:

Beim Herstellen einer Verbindung zu SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht erreichbar. Stellen Sie sicher, dass der Instanzname korrekt ist und 

dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden. (Anbieter: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht geöffnet werden) (Microsoft SQL Server, Fehler: 5)

Ich habe alles im Folgenden überprüft und überprüft

-Name Pipes/TCP ist aktiviert .- Remote-Verbindungen sind zulässig .- Windows-Firewall ist deaktiviert - Es wurde eine Ausnahme für die Portin-Windows-Firewall erstellt (dies war in meinem Fall nicht erforderlich, da sich der Server im selben Server befindet.) Subnetzwerk) .- Aktiviert alles in SQL Server Configuration Manager.

dann habe ich die Portnummer auf den Standardwert 1433 zurückgesetzt und den SQL-Serverdienst neu gestartet. Das Problem wurde behoben und ich kann den SQL-Server von meinem lokalen Managementstudio aus verbinden.

3
balu

Ich hatte das gleiche Problem. Ich verwende das MSSQL Server Management Studio 2017 und löste dieses Problem mithilfe der folgenden Schritte:

  1. Prüfen Sie, ob die SQL Server Services-Dienste einwandfrei funktionieren oder nicht.
  2. Überprüfen Sie auch, ob der SQL Server (MSSQLSERVER) in gutem Zustand ist.
  3. Überprüfen Sie auch, ob der SQL Server Browser einwandfrei funktioniert.
  4. Starten Sie SQL Server (MSSQLSERVER) erneut

und reparierte es.

3
Murat

Versuchen Sie die folgenden Schritte:

  1. Öffnen Sie das Fenster "Dienste" ("Ausführen" und geben Sie services.msc ein).

  2. Suche nach SQL-Diensten (mit SQL-Präfix).

  3. Starten Sie sie (wenn nicht gestartet werden kann. Springen Sie Schritt 4).

  4. Klicken Sie mit der rechten Maustaste auf jeden Dienst -> Eigenschaften -> Wechseln Sie zur Registerkarte "Anmelden" -> Wählen Sie als "Lokal ..." -> 0K. Starten Sie dann die SQL-Dienste erneut.

Versuchen Sie Open SQL und verbinden Sie die Datenbank.

1
Harry Ho

Wenn Sie mit Asp.net Core arbeiten und appsettings.json verwenden, schreiben Sie den Server als localhost und schreiben Sie anschließend den SQL-Instanznamen für die aktivierte Named Pipe wie folgt

  "ConnectionString": {
    "dewDB": "server=localhost\\dewelopersql;database=dewdb;User ID=sa;password=XXXXX",
  },
1
dewelloper

Sie werden wahrscheinlich feststellen, dass Ihr DB-Name nicht korrekt ist. In VS wird der Servername wie "DESKTOP-0I14BKI" angezeigt. Wenn Sie jedoch SSMS öffnen, wird DESKTOP-0I14BKI\SQLBLAHBLAH angezeigt. \ SQLBLAHBLAH "(Instanzname) zu Ihrem" Servernamen "in den VS-Verbindungseigenschaften.

Du wirst sehen:  enter image description here

Reparieren: enter image description here

1
scott

Ich habe auf dieser Seite so ziemlich alles versucht, aber ich hatte einige grundlegende Probleme, die eigentlich gelöst werden mussten. Ich konnte bestimmte Dinge nicht ausführen, wie beispielsweise den geöffneten SQL Server-Konfigurations-Manager. Dies führte dazu, dass WMI-Anbieterdateien beschädigt waren oder fehlten.

Es gibt viele mühsame Wege, um dieses Problem zu beheben, was ich gelesen habe, aber das Tool von tweaking.com konnte meine WMI-Provider-Dateien (Windows Management Instrumentation) entfernen und ersetzen/reparieren.

Ich habe Computerreparaturen durchgeführt und insgesamt hat mich das Tool tweaking.com wirklich beeindruckt, und es wurde von einer der WMI-Fehlerforumseiten vorgeschlagen, die ich besuchte.

Nachdem ich dieses Problem behoben hatte, konnte ich mich lokal und remote mit meiner SQL-Datenbank verbinden.

Hoffe das hilft jemandem.

0
Elon Zito

Ich hatte lange Zeit mit diesem Problem zu kämpfen, bevor ich meinen Fehler bemerkte - ich hatte in der Verbindungszeichenfolge Kommas anstelle von Semikola verwendet

0
Andy

Ich habe eine weitere Lösung, denke ich ... Ich hatte vor kurzem meinen Computernamen geändert, nachdem ich keine Verbindung mehr herstellen konnte, nachdem ich alle oben genannten Methoden ausprobiert hatte > (nach mehr suchen) => Unter der Datenbank-Engine wurde ein neuer Server gefunden, der mit dem neuen Namen des Computers identisch ist. Dies funktionierte und das Leben ist wieder gut.

0
appstauq

Ich habe folgende Schritte zur Behebung Ihres Problems vorgeschlagen Wie behebe ich den Fehler "Named Pipes Provider, Fehler 40 - Verbindung zu 'SQL Server" konnte nicht hergestellt werden

  1. Prüfen Sie, ob die SQL Server Services-Dienste einwandfrei funktionieren [] oder nicht.
  2. Prüfen Sie auch, ob in gutem Zustand SQL Server (MSSQLSERVER) funktioniert.
  3. Überprüfen Sie auch, ob der SQL Server-Browser einwandfrei funktioniert.
  4. Löschen Sie alle früheren Aliases, und erstellen Sie neue Aliase gemäß Ihren Anforderungen.
  5. Prüfen Sie nun, ob der SQL Server-Standard Port 1433 funktioniert.
  6. Klicken Sie anschließend in der Instanz auf Client Protocols und dann auf TCP/IP. Klicken Sie nun mit der rechten Maustaste, öffnen Sie die Eigenschaft. Hier können Sie sicherstellen, dass Ihr Standardport SQL 1433 ordnungsgemäß funktioniert.
  7. Öffnen Sie Ihr SQL Server Management Studio, klicken Sie dann mit der rechten Maustaste, klicken Sie auf die Option "Property" und klicken Sie dann auf die Registerkarte Connections. Markieren Sie schließlich Remote-Verbindungen zu diesem Server erlauben .
  8. Überprüfen Sie, ob der Ping-IP-Host ordnungsgemäß funktioniert.
0
Anjan Kant

Aktivieren Sie TCP/IP, Piped Protocol, indem Sie zu Computerverwaltung -> SQL und Dienste gehen. Erweitern Sie den Port in der Firewall. Versuchen Sie, sich über die Eingabeaufforderung -> als Admin anzumelden. Zuletzt sollte der Benutzername (lokal)\SQLEXPRESS sein. Hoffe das hilft.

0
VaishB

Ich hatte dieses Problem, aber keiner der obigen Vorschläge regelte es. 

Ich habe dieses Problem gesehen, als ich meine Website für IIS bereitstellte. Das Update bestand darin, erweiterte Einstellungen für den Standard-App-Pool vorzunehmen und die Identitätseigenschaft von Administrator in Administrator zu ändern. 

0
Ste Brown

Sehr einfache Lösung 

use (local)\InstanceName Das ist es. Es hat für mich funktioniert.

0

Ich hatte das gleiche Problem und löste das Problem durch Deaktivieren meiner Firewall (ESET).

Der erste Schritt zur Lösung dieses Problems sollte darin bestehen, einen eigenen Computer von einem anderen Computer aus anzupingen. Wenn Sie die Firewall aktiviert haben, können Sie sich möglicherweise nicht selbst pingen. Ich habe versucht, meinen eigenen PC zu pingen, dann war der Ping-Vorgang fehlgeschlagen.

0

Für mich war es ein Firewall-Problem.

Zuerst muss man aber den Port hinzufügen (zB 1444 und vielleicht 1434) 

C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe

und 

%ProgramFiles%\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\SQLAGENT.EXE

Das zweite Mal, als ich dieses Problem bekam, war, als ich zur Firewall zurückkam, die Pfade waren nicht korrekt und ich musste Formular 12 bis 13 aktualisieren! Durch Klicken auf Durchsuchen in der Registerkarte Programme und Dienste wurde dies realisiert.

Versuchen Sie schließlich, den Befehl auszuführen

EXEC xp_readerrorlog 0,1, "Dienstprinzipalname konnte nicht registriert werden", Null

Für mich wurde der Fehlergrund zurückgegeben

0
Dave

TL; DR; Ihre SQL Server-Instanz verwendet dynamische Ports, die nicht funktionieren. Erzwingen Sie, dass SQL Server den statischen Port # 1433 verwendet.

Vollständige Details : Zuallererst ist dieses Problem wahrscheinlicher, wenn Sie eine Mischung aus Standardinstanz und benannter Instanz oder nur benannten Instanzen haben (was mein Fall war).

Schlüsselkonzept : Jede auf einem Computer installierte Instanz von Microsoft SQL Server verwendet einen anderen Port, um auf eingehende Verbindungsanfragen zu warten. Die Standardinstanz von SQL Server verwendet den Port 1433. Bei der Installation benannter Instanzen werden dynamische Ports verwendet, die zum Zeitpunkt des Starts des Windows-Dienstes festgelegt werden, der der benannten SQL Server-Instanz entspricht.

Mein Code konnte (mit Fehlercode 40) keine Verbindung zu der einzigen benannten SQL Server-Instanz herstellen, die ich auf meiner VM hatte. Sie können folgende mögliche Lösungen ausprobieren:

Lösung 1 : Der Clientcode, der versucht, eine Verbindung zur SQL Server-Instanz herzustellen, ermittelt mithilfe des SQL Server-Browserdiensts die Portnummer, an der die angegebene Instanz auf eingehende Verbindungen wartet. Stellen Sie sicher, dass der SQL-Browserdienst auf Ihrem Computer ausgeführt wird.

Lösung 2 : Überprüfen Sie den Port (in gelber Farbe), den Ihre benannte SQL Server-Instanz vom SQL Server-Konfigurationsmanager verwendet, wie im folgenden Snapshot gezeigt:

 enter image description here 

Verwenden Sie diese Portnummer explizit in Ihrer Verbindungszeichenfolge oder mit der unten gezeigten sqlcmd:

sqlcmd -s mymachinename,11380 -i deleteDB.sql -o SQLDelete.txt

Lösung Nr. 3 : Erzwingen Sie, dass Ihre benannte Instanz den Port Nr. 1433 verwendet, der standardmäßig verwendet wird. Beachten Sie, dass dies nur funktioniert, wenn Sie keine Standard-SQL Server-Instanz auf Ihrem Computer haben, da die Standard-SQL Server-Instanz bereits den Port # 1433 verwenden würde. Dieselbe Portnummer kann nicht von zwei verschiedenen Windows-Diensten verwendet werden.

Markieren Sie das Feld TCP Dynamic ports als leer und das Feld TCP Port als 1433.

 enter image description here 

Ändern Sie die Portnummer in Ihrer Verbindungszeichenfolge wie folgt:

sqlcmd -s mymachinename\instanceName -i deleteDB.sql -o SQLDelete.txt

ODER

sqlcmd -s mymachinename,1433 -i deleteDB.sql -o SQLDelete.txt

Hinweis : Jede Änderung der TCP/IP-Einstellungen erfordert einen entsprechenden Neustart des Windows-Dienstes.

Interessanterweise ist es nach der Behebung des Fehlers, als ich zur dynamischen Porteinstellung zurückgekehrt bin, um denselben Fehler zu reproduzieren, nicht geschehen. Nicht sicher warum.

Bitte lesen Sie unten interessante Threads, um mehr über dynamische Ports von SQL Server zu erfahren:

Wie SQL Server Port auf mehreren Instanzen konfigurieren?

Wann ist ein dynamischer Port "dynamisch"?

Wann soll ein TCP dynamischer Port und wann TCP Port verwendet werden?

Ich habe Hinweise zur Lösung meines Problems von this blog erhalten.

0
RBT

In meinem Fall Habe ich SQL Server Management Studio geöffnet und in meinem Datenbankmodul nach SQLEXPRESS gesucht. Es gab zwei Instanzen, und ich habe die richtige ausgewählt.

 enter image description here

0
DivyaMenon

Öffnen Sie den SQL Server-Konfigurations-Manager

  1. Wählen Sie SQL Server Services von rechts aus.
  2. Finden Sie Ihren Server von rechts und gehen Sie zu seinen Eigenschaften (mit Rechtsklick)
  3. Ändern Sie die Anmeldemethode in Lokales System.

enter image description here

enter image description here

0
zapoo

Ich habe versucht, eine neue Verbindung in VS2015 hinzuzufügen. Keiner der Vorschläge hier hat funktioniert. Ich hatte den Verdacht, dass im Assistenten ein Fehler aufgetreten ist, insbesondere, da sich SSMS gut verbinden konnte. Ich beschloss, es auszuprobieren. Es funktionierte!

  1. Anstatt die Verbindung hinzuzufügen, verwenden Sie "Neue SQL Server-Datenbank erstellen". Geben Sie Ihren Servernamen und einen zufälligen Namen für die neue Datenbank ein, z. "Prüfung".

  2. Wenn dies erfolgreich ist, öffnen Sie den Server-Explorer in VS, suchen Sie die Verbindung in Datenverbindungen, klicken Sie mit der rechten Maustaste darauf und wählen Sie Verbindung ändern aus.

  3. Ändern Sie "test" (von Schritt 1) ​​in den Namen der vorhandenen Datenbank, zu der Sie eine Verbindung herstellen möchten. Klicken Sie auf "Verbindung testen". Diesmal sollte es klappen!

  4. Löschen Sie die temporäre Datenbank, die Sie in Schritt 1 erstellt haben.

0
Roman Starkov

Wenn Sie versucht haben, den MSSQLSERVER-Dienst neu zu starten, und dies nicht funktioniert hat, ist dies möglicherweise eine Lösung:

Wenn Sie SQLExpress verwenden, sollte Ihr Servername wie folgt lauten: Computername\SQLExpress. Für SQLDeveloper müssen Sie SQLDeveloper jedoch nicht nach Ihrem Computernamen angeben.

0
Asim Okby

Wenn Sie alle oben genannten Schritte ausgeführt haben hier , können Sie immer noch keine Verbindung herstellen. Fügen Sie den DNS mit der IP-Adresse in der hosts-Datei im Ordner etc hinzu. Das Hinzufügen einer IP-Adresse anstelle eines DNS-Namens in der Verbindungszeichenfolge sollte eine temporäre Lösung sein, um zu prüfen, ob die Verbindung tatsächlich funktioniert.

0
user3307830

öffnen Sie die Portnummer 1433 auf Ihrem Server, um eine SQL-Remoteverbindung herzustellen

0
Hamid Jolany

Ich habe versucht, mit der lokalen IP-Adresse eine Verbindung herzustellen sowie eine öffentliche. Ich habe es versucht:

Ja, die Site kann mit dem Server kommunizieren. Named Pipes/TCP ist aktiviert. Fernverbindungen sind erlaubt. Die Windows-Firewall ist deaktiviert Es wurde eine Ausnahme für Port 1433 in der Windows-Firewall erstellt. Aktiviert alles in SQL Server Configuration Manager.

ich habe dafür gesorgt und das auch getan und ich möchte nur mitteilen, dass DOUBLE BACKSLASH 

oBuilder.DataSource = "SPECIFICPCNAME\SQLEXPRESS";

Die Verwendung von SINGLE BACKSLASH führte zu einem Build-Fehler, d. H .: Fehler 1 Unbekannte Escape-Sequenz 

Ich hoffe, das hilft dem nächsten Kerl - ich habe das Abendessen, den Mitternachtssnack und die NBA-Highlights für die Lösung dieser Aufgabe geopfert

Vielen Dank an [Tamizh venthan] ^ _ ^

0
Ronan Masangcay