it-swarm.com.de

Warum erhalte ich die Meldung "Keine Verbindung zum Server möglich - Ein Netzwerkfehler oder ein instanzspezifischer Fehler"?

Beim Versuch, eine Verbindung zu SQL Server herzustellen, wird die folgende Fehlermeldung angezeigt:

Verbindung zu 108.163.224.173 nicht möglich.

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 zulässig sind.

(Anbieter: Named Pipes Provider, Fehler: 40 - Konnte keine Verbindung zu SQL Server herstellen) (Microsoft SQL Server, Fehler: 1326)

Dieser Fehler wird ausgelöst, wenn ich versuche, meine Datenbank in Visual Studio 2010 für die Rasteransicht zu konfigurieren. Ich weiß nicht, wie ich diesen Fehler beheben soll.

Wie würden Sie diesen Fehler beheben? Welche Schritte muss ich zusätzlich zu den in der Fehlermeldung genannten Schritten unternehmen, um festzustellen, was hier wirklich vor sich geht?

337
Sasa Shree

Ich fand die folgenden Techniken hilfreich:

  1. Stellen Sie sicher, dass Ihre Datenbank-Engine konfiguriert ist, um Remoteverbindungen zu akzeptieren:

    • Start> Alle Programme> SQL Server 2005> Konfigurationstools> SQL Server-Oberflächenkonfiguration
    • Klicken Sie auf Oberflächenkonfiguration für Dienste und Verbindungen
    • Wählen Sie die Instanz aus, bei der ein Problem vorliegt> Datenbankmodul> Remoteverbindungen
    • Aktivieren Sie lokale und Remote-Verbindungen
    • Instanz neu starten
  2. Möglicherweise müssen Sie eine Ausnahme in der Firewall erstellen für die von Ihnen verwendete SQL Server-Instanz und den verwendeten Port:

    • Start> Ausführen> Firewall.cpl
    • Klicken Sie auf die Registerkarte Ausnahmen
    • Fügen Sie sqlservr.exe (normalerweise in C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin, überprüfen Sie Ihre Installationen auf den tatsächlichen Ordnerpfad) und Port (Standard ist 1433) hinzu.
    • Überprüfen Sie auch Ihre Verbindungszeichenfolge
  3. Überprüfen Sie, ob Ihre SQL Server-Dienste ausgeführt werden ordnungsgemäß:

    • Wechseln Sie zu Alle Programme> Microsoft SQL Server 2008> Konfigurationstools> SQL Server-Konfigurations-Manager> SQL Server-Dienste
    • Stellen Sie sicher, dass der SQL Server-Dienststatus "Wird ausgeführt" lautet.

    Stellen Sie außerdem sicher, dass sich Ihr Remote-Server im selben Netzwerk befindet. Führen Sie sqlcmd -L aus, um festzustellen, ob Ihr Server in Ihrer Netzwerkliste enthalten ist.

  4. TCP/IP aktivieren in der SQL Server-Konfiguration

    Wenn zwei oder mehr SQL Server über ein Netzwerk verbunden sind, erfolgt die gesamte Kommunikation über TCP/IP. Der Standardport der SQL Server-Installation ist 1433. Dieser Port kann über den SQL Server-Konfigurations-Manager geändert werden. TCP/IP sollte aktiviert sein, damit SQL Server verbunden werden kann.

    • Gehen Sie zu Alle Programme >> Microsoft SQL Server 2008 >> Konfigurationstools >> SQL Server Configuration Manager >> Wählen Sie TCP/IP aus
    • Klicken Sie mit der rechten Maustaste auf TCP/IP >> Klicken Sie auf Aktivieren

    Sie müssen SQL Server Services neu starten, damit alle Änderungen wirksam werden. Klicken Sie mit der rechten Maustaste und gehen Sie zu den Menüeigenschaften, um den Speicherort auszuwählen, an dem der Standardport von SQL Server geändert werden kann.

281

Ich habe Lösung für mich:

Öffnen Sie "SQL Server Configuration Manager"

Klicken Sie nun auf "SQL Server Network Configuration" und klicken Sie auf "Protocols for Name "

Klicken Sie mit der rechten Maustaste auf "TCP/IP" (stellen Sie sicher, dass es aktiviert ist). Klicken Sie auf Eigenschaften

Wählen Sie jetzt die Registerkarte "IP-Adressen" -und- Gehen Sie zum letzten Eintrag "IP All"

Geben Sie "TCP Port" 1433 ein.

Now Restart "SQL Server .Name." mit "services.msc" (winKey + r)

Es wird klappen...

106
Irshad Khan

Füge meinen hochgestimmten Kommentar als Antwort mit Screenshots hinzu.

Ich habe viel Zeit damit verbracht, schließlich hat bei mir Folgendes funktioniert:

1) Öffnen Sie SQL Server Configuration Manager -> SQL Server-Netzwerkkonfiguration -> Protokolle für <(INSTANCE)> -> TCP/IP (Doppelklick darauf).

enter image description here

2) Wählen Sie -> IP-Adressen (Tab) .

3) Gehen Sie zum letzten Eintrag IP All und erwähnen Sie TCP Port 1433 .

enter image description here

4) Drücken Sie Win+R und geben Sie services.msc ein.

5) Starten Sie nun SQL Server <(INSTANCE)> neu.

enter image description here

Danach wurde das Problem behoben!

87
user1336087

Ich löse das Problem, indem ich Services öffne und dann den Sql Server (Sqlexpress) Dienst starte.

service Image

78
Anik Saha

Dieser Fehler trat hauptsächlich auf, wenn der SQL-Dienst beendet wurde. Sie müssen den Dienst neu starten. Um zu diesem Fenster zu gelangen, müssen Sie die Dienste wie folgt durchsuchen: enter image description here

Suchen Sie dann nach SQLSERVER (MSSQLSERVER) und starten Sie den Dienst neu.

enter image description here

Hoffe das wird funktionieren.

19
Debendra Dash

Drücken Sie window + R (Run window Open) und geben Sie im Ausführungsfenster "services.msc" ein. Wenn neue Dienste geöffnet sind, suchen Sie den SQL-SERVER mit dem Instanznamen in meinem Fall SQL SERVER(SQLEXPRESS). Starten Sie dann diesen Dienst und versuchen Sie es erneut Du auch. enter image description here

13
Hafiz Asad

Für den Fall, dass Sie die Express Edition verwenden:

Fügen Sie nach Ihrem Servernamen "\SQLEXPRESS" hinzu

z.B. "MY-SERVER\SQLEXPRESS"

enter image description here

13

Ich hatte den gleichen Fehler, als ich mein WinForms-Projekt (das das Arbeiten mit einer SQL Server-Datenbank und das perfekt auf meinem PC funktionierte) auf einem anderen PC ausführen wollte. Das Problem war in der Windows-Firewall auf meinem PC. Ich habe das gelöst, indem ich zwei Regeln hinzugefügt habe. So lassen Sie SQL Server über die Windows-Firewall zu:

  1. Öffne "Run" und gib services.msc ein
  2. Suchen Sie den Dienst für SQL Server (Instanzname) und SQL Server-Browser. Klicken Sie nacheinander mit der rechten Maustaste, wählen Sie "Eigenschaften" und kopieren Sie den Pfad zur exe-Datei
  3. Öffnen Sie dann firewall.cpl, klicken Sie auf "Anwendung zulassen" oder "Regel hinzufügen", fügen Sie den zuvor kopierten Pfad hinzu (es ist ein Verfahren erforderlich), aktivieren Sie "Domäne" und "Privat" und deaktivieren Sie "Öffentlich".

Dies ist der YouTube-Link, unter dem Sie diesen Vorgang sehen können: SQL Server durch die Windows-Firewall zulassen

11
NutCracker

Wenn keine der oben genannten Lösungen funktioniert (bei mir hat nichts funktioniert), starten Sie einfach Ihren Computer neu und Sie können eine Verbindung zu Ihrem SQL-Server (localhost) herstellen.

10
eugen sunic

Nachdem Sie alles getan haben, was hier erwähnt wurde:
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open -a-verbindung-zu-sql-server-Microsoft-sql-server-error / Funktionierte bei mir immer noch nicht.

Schritte arbeiteten für mich:

Start > Run > cmd > sqlcmd -L

Sie werden aufgefordert, den Servernamen einzugeben. Stellen Sie sicher, dass dieser Servername mit dem Namen übereinstimmt, mit dem Sie in der CONNECT TO SERVER-Box von SQL Management Studio eine Verbindung herstellen möchten.

Ich habe diesen dummen Fehler gemacht und benutze weiterhin MSSQLSERVER, anstatt diesen Servernamen zu verwenden.

Ich hoffe, das hilft den Leuten, die dumme Fehler machen wie ich.

Vielen Dank.

8
Denn

Ich verwende SQL Server 2016 und Windows 10.

enter image description here

Zunächst muss eine Remoteverbindung zu SQL Server zugelassen werden. Ich habe im Startmenü sqlservermanager13.msc eingegeben, um den SQL Server-Konfigurations-Manager zu öffnen. Stellen Sie sicher, dass der TCP/IP-Status aktiviert ist. enter image description here

Überprüfen Sie die TCP -Portnummer, indem Sie auf den TCP/IP-Protokollnamen doppelklicken. Normalerweise ist es standardmäßig 1433.

enter image description here

Mit den folgenden Verfahren wird die Windows-Firewall mithilfe des MMC-Snap-Ins (Microsoft Management Console) für die Windows-Firewall mit erweiterter Sicherheit konfiguriert. Die Windows-Firewall mit erweiterter Sicherheit konfiguriert nur das aktuelle Profil.

So öffnen Sie einen Port in der Windows-Firewall für den TCP -Zugriff

  1. Klicken Sie im Startmenü auf Ausführen, geben Sie WF.msc ein, und klicken Sie dann auf OK.
  2. Klicken Sie in der Windows-Firewall mit erweiterter Sicherheit im linken Bereich mit der rechten Maustaste auf Eingehende Regeln, und klicken Sie dann im Aktionsbereich auf Neue Regel.
  3. Wählen Sie im Dialogfeld Regeltyp die Option Port aus, und klicken Sie dann auf Weiter.
  4. Wählen Sie im Dialogfeld Protokoll und Ports die Option TCP aus. Wählen Sie Bestimmte lokale Ports aus, und geben Sie die Portnummer der Instanz des Datenbankmoduls ein, z. B. 1433 für die Standardinstanz. Weiter klicken.
  5. Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen aus, und klicken Sie dann auf Weiter.
  6. Wählen Sie im Dialogfeld Profil alle Profile aus, die die Computerverbindungsumgebung beschreiben, wenn Sie eine Verbindung zum Datenbankmodul herstellen möchten, und klicken Sie dann auf Weiter.
  7. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für diese Regel ein, und klicken Sie dann auf Fertig stellen.

Eine andere Sache zu konfigurieren.

So öffnen Sie den Zugriff auf SQL Server bei Verwendung dynamischer Ports

  1. Klicken Sie im Startmenü auf Ausführen, geben Sie WF.msc ein, und klicken Sie dann auf OK.
  2. Klicken Sie in der Windows-Firewall mit erweiterter Sicherheit im linken Bereich mit der rechten Maustaste auf Eingehende Regeln, und klicken Sie dann im Aktionsbereich auf Neue Regel.
  3. Wählen Sie im Dialogfeld Regeltyp die Option Programm aus, und klicken Sie dann auf Weiter.
  4. Wählen Sie im Dialogfeld Programm die Option Diesen Programmpfad. Klicken Sie auf Durchsuchen, navigieren Sie zu der Instanz von SQL Server, auf die Sie über die Firewall zugreifen möchten, und klicken Sie dann auf Öffnen. Standardmäßig befindet sich SQL Server unter C:\Programme\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe. Weiter klicken.
  5. Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen aus, und klicken Sie dann auf Weiter.
  6. Wählen Sie im Dialogfeld Profil alle Profile aus, die die Computerverbindungsumgebung beschreiben, wenn Sie eine Verbindung zum Datenbankmodul herstellen möchten, und klicken Sie dann auf Weiter.
  7. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für diese Regel ein, und klicken Sie dann auf Fertig stellen.

Schauen Sie sich Microsoft Doucmentation an Konfigurieren einer Windows-Firewall für den Zugriff auf das Datenbankmodul

5
Fred

Sie können die folgenden Methoden testen.

  • ein

    1. Überprüfen Sie die Verbindungszeichenfolge des Projekts.
  • b

    1. Gehen Sie zu Dienste und starten Sie die SQLServer-Instanz neu.
  • c

    1. Öffnen Sie den 'SQLServer Configuration Manager'
    2. Wählen Sie im linken Bereich "SQLServer-Netzwerkkonfiguration" und erweitern Sie es
    3. Wählen Sie "Protokolle für MSSQLServer"
    4. Klicken Sie im rechten Fensterbereich auf "TCP/IP".
    5. Setzen Sie auf der Registerkarte "Protokoll" die Option "Aktiviert" auf "Ja".
    6. Scrollen Sie auf der Registerkarte "IP-Adressen" nach unten
    7. In der 'IPAll' setzen Sie 'TCP Port' auf 1433
  • d
    1. Öffnen Sie "Firewall mit erweiterter Sicherheit"
    2. Wählen Sie auf der rechten Registerkarte "Eingehende Regeln" aus.

Suchen Sie auf der mittleren Registerkarte den Eintrag 'Lokaler Port' (1433). Wenn Sie ihn nicht finden können, versuchen Sie, ihn mit den folgenden Ebenen zu erstellen

  • Klicken Sie im Startmenü auf Ausführen, geben Sie "WF.msc" ein, und klicken Sie dann auf OK
  • Klicken Sie im linken Bereich auf "Windows-Firewall mit erweiterter Sicherheit".
  • Klicken Sie im rechten Bereich mit der rechten Maustaste auf "Eingehende Regeln" und dann auf "Neue Regel".
  • Wählen Sie im Dialogfeld "Regeltyp" die Option "Port" aus und klicken Sie dann auf "Weiter"
  • Wählen Sie im Dialogfeld "Protokoll und Ports" die Option "TCP" und "Bestimmte lokale Ports" aus und geben Sie die Portnummer 1433 ein. Klicken Sie auf "Weiter"
  • Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen aus, und klicken Sie dann auf Weiter
  • Aktivieren Sie im Dialogfeld "Profil" die Optionen "Domäne", "Privat" und "Öffentlich" und klicken Sie dann auf "Weiter"
  • Geben Sie im Dialogfeld "Name" "SQL 1433 Port" ein, und geben Sie für eine Beschreibung eine eigene Beschreibung ein. Klicken Sie dann auf Fertig stellen
  1. Doppelklicken Sie dann in der mittleren Registerkarte auf das gefundene Element (Instanz) oder auf das von Ihnen erstellte Element mit dem Namen 'SQL 1433-Port'.
  2. Wählen Sie im geöffneten Dialogfeld die Registerkarte "Bereich" (SQL Server-Eigenschaften).
  3. Auf dem lokalen PC Gehen Sie in Ihrem Browser zu google.com und suchen Sie nach "Meine IP".
  4. dann kopiere deine 'IP'
  5. Gehen Sie zum Remote-Server und wählen Sie im Dialogfeld "SQL Server-Eigenschaften" der Registerkarte "Bereich" unter "Remote-IP-Adresse" die Option "Diese IP-Adressen" aus und klicken Sie auf "Hinzufügen"
  6. Wählen Sie im geöffneten Dialogfeld (IP-Adresse) die Option "Diese IP-Adresse oder Subnetz" und fügen Sie Ihre "IP" ein. Klicken Sie auf "OK".
4
MohammadSoori

Ich hatte das gleiche Problem und das Problem war, dass ich mehrere Projekte in der Lösung hatte (Web und Droid) und obwohl Default project in Package Manager Console ausgewählt wurde Verbindungszeichenfolge aus dem Projekt Droid:

PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): 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: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   [REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
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: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Nachdem ich den Startup Project auf Web und den Default Project in Package Manger Console eingestellt habe, habe ich es zum Laufen gebracht.

4
Jefecito

Ich bin von einem Arbeitslaptop unter Windows 7 auf einen Arbeitslaptop unter Windows 10 umgezogen. Ich habe SSMS2016 unter Windows 7 erfolgreich verwendet.

Dasselbe Problem trat bei Verwendung von SSMS2012 oder SSMS2016 auf. Mein Zugang zu den 10 SQL-Servern mit Windows-Authentifizierung war immer noch der gleiche. Ich könnte dies von einem anderen Server testen. Allerdings 2 der 10 Server würden keine Verbindung von meinem Laptop herstellen. Beide waren MS SQL Server 9, aber ich konnte eine Verbindung zu anderen SQL Server 9-Datenbanken herstellen.

Die Lösung war Hinzufügen einer Firewall-Regel (Verwenden der Windows-Firewall mit erweiterter Sicherheit).

Erstellen Sie für jedes SSMS eine Eingangsregel, z. B. C:\Programme (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Ssms.exe

Ich bin kein Netzwerkexperte, daher habe ich die Details nicht angegeben, aber ich hoffe, es weist Sie in die richtige Richtung.


Fehlermeldung (Vor-Firewall-Regel) "Beim Herstellen einer Verbindung zu SQL Server ist ein netzwerkbezogener oder instanzenspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht erreichbar. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server für konfiguriert ist Remoteverbindungen zulassen (Anbieter: SQL Network Interfaces, Fehler: 26 - Fehler beim Suchen des angegebenen Servers/der angegebenen Instanz) (.Net SqlClient Data Provider)

3
johnc

Ich habe alle anderen Antworten auf diese Frage ausprobiert, und einige, wenn nicht alle, haben wahrscheinlich dazu beigetragen, dass dies für mich funktioniert, aber ich konnte mich immer noch nicht remote mit der DB verbinden. Ich habe einen SQL Server auf einer Azure-VM verwendet.

Schließlich erinnerte ich mich daran, dass VM Endpunkte hat, die vom Azure-Konto-Proxy gesteuert werden. Ich wechselte zum Azure-Portal und fügte 1433 als verfügbaren Endpunkt hinzu. Anschließend konnte ich eine Verbindung zu meiner SQL-Instanz herstellen.

Hoffe das hilft jemandem, der alle anderen Antworten ausprobiert hat und noch kein Glück hat!

3
John

Sie können den Servicestatus von MS SQL Server 2014 überprüfen. In Windows 7 können Sie dies folgendermaßen tun:

  1. Gehen Sie zur Suche und geben Sie "SQL Server 2014 Configuration Manager" ein
  2. Klicken Sie dann im linken Menü auf "SQL Server Service"
  3. Überprüfen Sie die Instanz des SQL Server-Dienststatus, wenn dieser beendet ist oder ausgeführt wird
  4. Wenn es beendet wurde, ändern Sie den Status in "Wird ausgeführt" und melden Sie sich bei SQL Server Management Studio 2014 an
3
Chamara

Ich muss den Dienst SQL Server Browser in SQL Server Configuration Manager ausführen. Die Installation kann neu erstellte Dienste ohne diese nicht erkennen.

3
MarkosyanArtur

Zusammenfassung

Verwenden Sie den SQL Server-Konfigurations-Manager, um dieses Problem zu beheben, das bei Ausführen der lokalen App gegen die entfernte Datenbank aufgetreten ist, und fügen Sie einen Alias ​​für die entfernte Datenbank hinzu.

Details

Ich hatte vor kurzem dieses Problem beim Übergang von einem Windows 7 auf einen Windows 10-Laptop. Ich habe eine lokale Entwicklungs- und Laufzeitumgebung ausgeführt, die auf einem Remote-Server auf unsere Entwicklerdatenbank zugegriffen hat. Wir greifen auf die Dev-Datenbank über ein Server-Alias ​​zu, das über das SQL Server Client Network Utility (cliconfg.exe) eingerichtet wurde. Nachdem bestätigt wurde, dass der Alias ​​sowohl in der 64 - als auch in der 32 - Bit - Version des Dienstprogramms korrekt eingerichtet wurde und der Datenbankserver über SSMS vom neuen Laptop aus erreichbar ist, wurde der Fehler weiterhin vom OP angezeigt (nicht von der IP - Adresse des OP) Kurs).

Es war erforderlich, SQL Server Configuration Manager zu verwenden, um einen Alias ​​für den entfernten Dev-Datenbankserver hinzuzufügen. Fehler behoben.

enter image description here

3
Bill Needels

Diese Lösung behebt auch sowohl Netzwerkfehler als auch den Service hinter dem SQL Server

Ich habe eine ähnliche Frage hier beantwortet, Sie müssen den anderen _open Run type-> services.msc_ angeben - unter services -> sort by stopped sehen Sie eine Reihe von gestoppten SQL-Diensten _Right click and start_

Zu Beginn - es gibt 4 Probleme, die die gemeinsamen LocalDb SqlExpress Sql Server-Konnektivitätsfehler _SQL Network Interfaces, error: 50 - Local Database Runtime error occurred_ verursachen können, bevor Sie beginnen muss v11 oder v12 in (localdb)\mssqllocaldb umbenannt werden

Ich fand, dass das einfachste ist, das Folgende zu tun - ich habe die Bilder und Schritte zur Hilfe angehängt.

Überprüfen Sie zunächst, welche Instanz Sie installiert haben, indem Sie die Registrierung überprüfen und cmd ausführen

  1. _cmd> Sqllocaldb.exe i_
  2. _cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"_ Wenn dieser Schritt fehlschlägt, können Sie mit der Option d cmd> Sqllocaldb.exe d "someDb" löschen.
  3. _cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"_
  4. _cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"_

SqlLOCALDb_edited.png

3
transformer

Die obigen Lösungen sollten zwar in 90% der Fälle funktionieren, aber wenn Sie diese Antwort noch lesen !!! Sie versuchen wahrscheinlich, eine Verbindung zu einem anderen Server als beabsichtigt herzustellen. Dies kann daran liegen, dass eine Konfigurationsdatei auf einen anderen SQL-Server verweist als den tatsächlichen Server, zu dem Sie eine Verbindung herstellen möchten.

Ist mir zumindest passiert.

3
Arjmand

Warum dieser Fehler so langweilig und laut ist, nur weil er in unterschiedlichen Situationen auftreten kann.

Ich habe hier oben alle Ansätze gemacht und werde immer noch gelutscht. Stellen Sie also sicher, dass Sie dasselbe getan haben wie ich, bevor Sie nach unten blättern.

Vielleicht kann ich deine Situation nicht sofort beheben , aber ich kann eine Richtung aufzeigen oder an dich denken (Der, der endlich hier runter rutscht). Ich habe begonnen, über den Fehler meines laufenden Programms nachzudenken, nachdem ich sichergestellt hatte, dass der Instanzname eindeutig richtig ist, und meine Datenbank so eingerichtet, dass die Remotesteuerung nach den oben beschriebenen Methoden möglich ist. Danach habe ich vermutet, dass in meinem Code-Snippet der SQL-Verbindung etwas nicht stimmt.

Lösung meines Problems:

  • Überprüfen Sie meine sqlconnection-Funktion

  • Klicken Sie hier, um die Konfiguration anzuzeigen

  • Neu eine Verbindung

enter image description here

  • Wählen Sie Ihren Servernamen

enter image description here

Es funktioniert für mich mit Nachdenken darüber, was genau im Prozess der Verbindung passiert. Ich hoffe, mein Denken wird Sie dazu bringen, Ihren Fehler zu töten.

3
Chase07

Vergewissern Sie sich, dass Sie nicht nur alles versuchen, wie von Teo Chuen Wei Bryan vorgeschlagen, sondern auch den korrekten Server-/Instanznamen in der Verbindungszeichenfolge angeben.

Wenn Sie die Kurzform Hostname/Instanz auf dem Datenbankserver oder in der Datei web.config verwenden, stellen Sie sicher, dass Sie vollqualifizierter Domänenname (FQDN)/Instanz verwenden

Um die Konnektivität von einem Server zu testen, auf dem der SQL Server-Client NICHT vorhanden ist,

-> erstelle eine Textdatei und ändere ihre Dateierweiterung auf .udl

-> Klicken Sie mit der rechten Maustaste auf die Datei und Sie sehen die Registerkarte Verbindung.

-> Geben Sie den Servernamen und die Anmeldeinformationen ein, um die Verbindung zum Datenbankserver zu testen.

Hoffe das hilft.

2
SanthoshM

Fügen Sie am Ende Ihrer Verbindungszeichenfolge einen , und eine Portnummer (wie in ,1433) hinzu.

2
Kalyan Hurkat

Als ich diesen Fehler in Visual Studio erlebte,

„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 zulässig sind. (Anbieter: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden) ”

... es war während der Ausführung des folgenden C # -Codes, der versuchte, meine SQL Server-Daten abzurufen, um sie in einem Raster anzuzeigen. Die Unterbrechung ist genau in der Zeile aufgetreten, in der connect.Open () steht:

        using (var connect = Connections.mySqlConnection)
        {
            const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
            using (var command = new SqlCommand(query, connect))
            {
                connect.Open();
                using (var dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // blah
                    }
                }
            }
        }

Es war unerklärlich, weil die SQL-Abfrage sehr einfach war, ich die richtige Verbindungszeichenfolge hatte und der Datenbankserver verfügbar war. Ich habe mich entschieden, die eigentliche SQL-Abfrage manuell in SQL Management Studio auszuführen, und sie lief einwandfrei und lieferte mehrere Datensätze. Eines stach jedoch in den Abfrageergebnissen hervor: In einem varchar (max) -Typ-Feld in der Friends-Tabelle befand sich falsch codierter HTML-Text (insbesondere einige codierte Kommentarsymbole der Art <!--, die im "Narrative" abgelegt wurden). Spaltendaten). Die verdächtige Datenzeile sah folgendermaßen aus:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

Beachten Sie das codierte HTML-Symbol "&lt;", das für ein "<" Zeichen stand. Irgendwie gelangte das in die Datenbank und mein C # -Code konnte es nicht abholen! Es schlug jedes Mal direkt an der connect.Open () -Linie fehl! Nachdem ich die eine Datenzeile in der Datenbanktabelle Friends manuell bearbeitet und stattdessen das dekodierte Zeichen "<" eingegeben hatte, funktionierte alles! So hätte diese Zeile aussehen sollen:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    <!--HTML Comment -->Once upon a time...

Ich habe die eine fehlerhafte Zeile bearbeitet, die ich hatte, indem ich diese einfache UPDATE-Anweisung unten verwendet habe. Wenn Sie jedoch mehrere fehlerhafte Zeilen codierten HTML-Codes hatten, benötigen Sie möglicherweise eine ausführlichere UPDATE-Anweisung, die die REPLACE-Funktion verwendet:

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

Die Moral der Geschichte ist also (zumindest in meinem Fall), Ihren HTML-Inhalt zu bereinigen, bevor Sie ihn in der Datenbank speichern, und Sie werden diesen kryptischen SQL Server-Fehler erst gar nicht bekommen! (Äh, wenn Sie mehr Informationen benötigen, ist das ordnungsgemäße Bereinigen/Dekodieren Ihres HTML-Inhalts Gegenstand einer weiteren Diskussion, die eine separate StackOverflow-Suche verdient!)

2

Anordnung der XML-Tags in der Datei "Web.config" ist wichtig

Zuerst

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

Nach

<connectionStrings>
  <add name="SqlConnectionString" connectionString="Data Source=.; Initial Catalog=TestDB; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
2
user7339584

Mein Problem begann, als ich versuchte, den Server von IIS Express zu Local IIS zu ändern (während ich LocalDB verwendete).

enter image description here

Ich habe LocalDB (für Entwicklungszwecke) verwendet und als ich von Local IIS zu IIS Express zurückkehrte, hatte Visual Studio meine Datenquelle von Datenquelle = (LocalDb)\MSSQLLocalDB bis Datenquelle =.\SQLEXPRESS

Falsche Verbindungszeichenfolge

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

Verbindungszeichenfolge korrigieren

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

Hoffe das hilft jemandem da draußen.

2
megamaiku

Wenn dieser Fehler plötzlich in einer Produktionsumgebung auftritt und sich nichts geändert hat, probieren Sie die folgenden 4 Elemente in der folgenden Reihenfolge aus, um zu überprüfen, ob er behoben wird.

  1. starten Sie den SQL Server-Dienst neu.
  2. starten Sie den Dienst (z. B. IIS) neu, der in SQL Server aufruft. (Das Problem liegt wahrscheinlich darin, dass die Zeit zwischen dem Start des Dienstaufrufs an SQL Server und dem Zeitpunkt, zu dem Sie den Antwortfehler erhalten, sehr kurz ist (ungefähr eine oder zwei Sekunden).
  3. neustart des Servers SQL Server ist eingeschaltet.
  4. starten Sie den Server neu, auf dem sich der aufrufende Dienst befindet.
2
Barka

Mein Problem war, dass Sie eine Verbindungszeichenfolge in beide Ihrem Repository-Layer und Web-Layer haben müssen. Nachdem ich es meiner web.config nd meiner app.config hinzugefügt hatte, konnte Entity Framework die Migration erstellen.

Meine Frage ist warum, braucht die web.config es, wenn dort absolut kein Datenbankzugriff besteht.

1
Thing

Es scheint, dass Ihre Instanz von localdb nicht ausgeführt wird. Um es beim Start des Computers zu starten, fügen Sie im Startmenü\Startordner eine BAT-Datei mit der folgenden Zeile hinzu

sqllocaldb start name_of_instance

dabei ist name_of_instance der Name der Localdb-Instanz, die Sie starten möchten. Sie können verfügbare Instanzen in der Befehlszeile mit sqllocaldb i auflisten.

z.B. Wenn Sie SQL Server Management Studio verwenden und eine Verbindung mit dem Servernamen (localdb)\v11.0 herstellen, sieht Ihre BAT-Datei folgendermaßen aus

sqllocaldb start v11.0
1
Ondrej

In meiner Situation hatte der MSSQLSERVER-Dienst ein Problem, daher habe ich den Dienst neu gestartet und das Problem behoben.

Ich empfehle daher, die Dienste-App zu öffnen, indem Sie die Windows-Taste drücken, nach "Dienste" suchen und dann in der Regel nach Ihrer SQL-Instanz suchen "SQL Server (MSSQLSERVER)" at for Microsoft sql server . Klicken Sie mit der rechten Maustaste auf Dienst und klicken Sie auf Start. Wenn deaktiviert, klicken Sie auf Neu starten.

1

Dieser Fehler tritt auf, wenn Ihre SQL Server-Instanz stopped ist.

Wechseln Sie zu allen Programmen> SQL Server> Konfigurationstools> SQL SERVER CONFIGURATION MANAGER

klicken Sie dann auf SQL Server Services. Eine Liste der Instanzen wird angezeigt. Wählen Sie die betreffende Instanz aus und klicken Sie auf das Wiedergabesymbol in der oberen Symbolleiste. Hoffen Sie, dass dies hilfreich ist.

diese Antwort ist sehr spät (aber besser spät als nie;)

1
Alex

Ich habe dieses Problem behoben, indem ich das Projekt festgelegt habe, das Entity Framework als Startprojekt verwendet, und dann den Befehl "update-database" ausgeführt habe.

1
user1796440

Wenn dies beim Debuggen in Visual Studio auftritt, vergewissern Sie sich, dass der Projekterstellungspfad auf ein lokales Laufwerk verweist, oder befolgen Sie diese Schritte , um Berechtigungen für den Netzwerkordner zu erteilen.

1
Kevin D.

Ich hatte auch dieses Problem, ich habe alles versucht, was in diesem Beitrag vorgeschlagen, aber nichts hat funktioniert. Schließlich löste ich mein Problem, indem ich diese Abfrage in meinem SQL Server ausführte

EXEC sp_configure 'remote access', 0 ;  
GO  
RECONFIGURE ;  
GO  
0

Es könnte auch so einfach sein, dass Ihre Datenbank nicht MS SQL Server ist. Wenn Ihre Datenbank beispielsweise tatsächlich MySQL ist und Sie versuchen, eine Verbindung mit System.Data.SqlClient herzustellen, wird dieser Fehler angezeigt.

Bei den meisten Beispielen für ADO.Net handelt es sich um MSSQL, und der unerfahrene Benutzer weiß möglicherweise nicht, dass Sie SqlConnection, SqlCommand usw. nicht mit MySql verwenden können.

Während alle ADO.Net-Datenanbieter der gleichen Schnittstelle entsprechen, müssen Sie den für Ihre Datenbank erstellten Anbieter verwenden.

0
Crowcoder