webentwicklung-frage-antwort-db.com.de

SQL-Netzwerkschnittstellen, Fehler: 26 - Fehler beim Suchen des Servers/der angegebenen Instanz

Nun, ich habe ein großes Problem, das ich seit Tagen zu lösen versuche, aber ich konnte es nicht tun, also brauche ich deine Hilfe. Ich habe eine Webanwendung in asp.net 4.0, in der ich benutzerdefinierte Mitgliedschafts- und Rollenanbieter implementiert habe. Wenn ich die App-Startseite darin öffne, wird eine Verbindung zur Datenbank hergestellt und einige Informationen abgerufen. Es gibt auch ein Anmeldeformular. Wenn ich mich anmelde, wird der Benutzer durch die Datenbank bestätigt und auf die reservierten Seiten umgeleitet, aber dieser Fehler wird angezeigt:

Bei .__ trat ein netzwerkbedingter oder instanzspezifischer Fehler auf. Herstellen einer Verbindung zu SQL Server. Der Server wurde nicht gefunden oder war nicht erreichbar. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server ist so konfiguriert, dass Remoteverbindungen zugelassen werden. (Anbieter: SQL Netzwerkschnittstellen, Fehler: 26 - Fehler bei der Suche nach Server/Instanz Angegeben)

Beschreibung:  

Eine unbehandelte Ausnahme ist während der Ausführung des aktuellen .__ aufgetreten. Webanfrage. Weitere Informationen zu .__ finden Sie in der Stack-Ablaufverfolgung. der Fehler und wo er im Code entstanden ist.

Ausnahmedetails:  

System.Data.SqlClient.SqlException: Ein Netzwerk oder Beim Herstellen einer Verbindung zu .__ ist ein instanzspezifischer Fehler aufgetreten. SQL Server. Der Server wurde nicht gefunden oder war nicht erreichbar. Überprüfen dass der Instanzname korrekt ist und dass SQL Server auf .__ konfiguriert ist. Fernverbindungen zulassen. (Anbieter: SQL-Netzwerkschnittstellen, Fehler: 26 - Fehler beim Suchen des Servers/der angegebenen Instanz)

Quellfehler:  

Eine unbehandelte Ausnahme wurde während der Ausführung von .__ generiert. aktuelle Webanfrage. Informationen zu Herkunft und Ort von Die Ausnahme kann anhand der unten aufgeführten Ausnahme-Stack-Ablaufverfolgung identifiziert werden.

Ich habe viele Dinge ausprobiert, eine Lösung fand ich in paketüberfluss aber nichts hat funktioniert. Hier sind meine Verbindungszeichenfolgen:

<connectionStrings>
  <clear/>
  <remove name="LocalSqlServer"/>
     <add name="LocalSqlServer" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient" />
     <add name="AgencyConn" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient"/>
</connectionStrings>

Im Folgenden finden Sie auch den Abschnitt Mitgliedschaft und Rollenmanager web.config:

<membership defaultProvider="AuthProvider">
  <providers>
    <clear/>
      <add name="AuthProvider" type="AuthenticationProvider" applicationName="~/Reserved/" connectionStringName="AgencyConn"/>
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="MyRoleProvider">
  <providers>
    <clear/>
      <add name="MyRoleProvider" type="RoleAccessProvider" connectionStringName="AgencyConn"/>
  </providers>
</roleManager>

Kann jemand helfen, herauszufinden, was falsch ist?

26
ivi.hamiti

Wenn Sie eine Verbindung von Windows-Computer A zu Windows-Computer B (Server mit installiertem SQL Server) herstellen und diese Fehlermeldung angezeigt wird, müssen Sie folgende Schritte ausführen:

Auf maschine B:

1.) Aktivieren Sie den Windows-Dienst "SQL Server Browser" und starten Sie den Dienst

2.) Aktivieren Sie in der Windows-Firewall den eingehenden Port UDP 1434 (falls SQL Server Management Studio auf Maschine A eine Verbindung herstellt oder ein Programm auf Maschine A eine Verbindung herstellt).

3.) Aktivieren Sie in der Windows-Firewall den eingehenden Port TCP 1433 (falls eine Telnet-Verbindung besteht).

4.) Aktivieren Sie in SQL Server Configuration Manager das TCP/IP-Protokoll für Port 1433

enter image description here

38
MacGyver

Für mich war das Problem, dass der DNS-Eintrag falsch war ... 

Das Folgende, das sich als sehr hilfreich erwiesen hat, ist weitgehend aus diesem Blogbeitrag entnommen.

Diese Fehlermeldung ist eigentlich ziemlich spezifisch und die Lösung ziemlich einfach.

Diese Fehlermeldung wird nur angezeigt, wenn Sie versuchen, eine Verbindung zu einer benannten SQL Server-Instanz herzustellen. Bei einer Standardinstanz wird dies nie angezeigt, da wir selbst dann, wenn zu diesem Zeitpunkt ein Fehler aufgetreten ist (z. B. Fehler bei der Suche nach Server/Instanz), weiterhin versuchen, die Verbindung mit Standardwerten herzustellen, z. B. default TCP Port 1433 (default) Rohrname für Named Pipes.

Jedes Mal, wenn ein Client eine Verbindung mit der benannten SQL Server-Instanz herstellt, senden wir ein SSRP-UDP-Paket an den UDP-Port 1434 des Server-Computers. Wir benötigen diesen Schritt, um die Konfigurationsinformationen der SQL-Instanz zu kennen, z. B. aktivierte Protokolle, TCP Port, Pipe-Name usw. Ohne diese Informationen weiß der Client nicht, wie eine Verbindung hergestellt werden soll, und die Fehlermeldung schlägt fehl.

Der Grund für diese Fehlermeldung ist, dass der Clientstack in einem Word kein SSRP-Antwort-UDP-Paket vom SQL-Browser empfangen konnte. Um das genaue Problem zu isolieren, gehen Sie folgendermaßen vor:

  1. Stellen Sie sicher, dass der Servername korrekt ist, z. B. kein Tippfehler.

  2. Stellen Sie sicher, dass der Name Ihrer Instanz korrekt ist und tatsächlich eine solche Instanz auf Ihrem Zielcomputer vorhanden ist. (Beachten Sie, dass einige Anwendungen\in konvertieren).

  3. Stellen Sie sicher, dass die Servermaschine erreichbar ist, z. B. kann DNS korrekt aufgelöst werden, Sie können einen Ping-Befehl an den Server senden (nicht immer wahr).

  4. Stellen Sie sicher, dass der SQL-Browserdienst auf dem Server ausgeführt wird.

  5. Wenn die Firewall auf dem Server aktiviert ist, müssen Sie sqlbrowser.exe und/oder UDP-Port 1434 in eine Ausnahme setzen.

Es gibt einen Eckfall, in dem Sie möglicherweise immer noch versagen, nachdem Sie die Schritte 1 bis 4 überprüft haben. Dies kann auch passieren, wenn:

  1. ihr Server ist eine benannte Instanz im Cluster oder auf einer Maschine mit mehreren Heimen
  2. ihr Client ist ein Vista-Computer mit aktivierter Firewall. 

Ein Werkzeug, das sich als nützlich erweisen könnte (für mich war dies), ist PortQry . Wenn dieser Befehl Informationen zurückgibt und Ihre Zielinstanz enthält, können Sie die oben genannten Möglichkeiten 4 und 5 ausschließen, was bedeutet, dass ein SQL-Browser ausgeführt wird und Ihre Firewall das UDP-Paket des SQL-Browsers nicht blockiert. In diesem Fall können Sie andere mögliche Probleme überprüfen, z. B. eine falsche Verbindungszeichenfolge.

Als letzte Bemerkung lautet die Fehlermeldung für dasselbe Problem bei Verwendung von SNAC: [SQL Native Client] SQL-Netzwerkschnittstellen: Fehler bei der Suche nach Server/Instanz Angegeben [xFFFFFFFF].

Vor kurzem hat Microsoft einen geführten Durchlauf veröffentlicht, der als zentrale Anlaufstelle für die Behebung der meisten Konnektivitätsprobleme mit SQL Server dienen kann: Beheben von Konnektivitätsfehlern mit SQL Server

15
Paul Zahra

Die Antwort ist in der Fehlermeldung selbst:

Error Locating Server/Instance Specified

Grundsätzlich haben Sie die falsche Serverinstanz in der Verbindungszeichenfolge angegeben, d. H. Dieses Bit:

Data Source=MSSQL2008-1

ist falsch und zeigt nicht auf den Server oder der Servername wird nicht in eine IP-Adresse aufgelöst. Zwei weitere Möglichkeiten: (1) Der SQL-Browserdienst auf der Box, auf der SQL Server ausgeführt wird, läuft nicht oder (2) die Windows-Firewall (oder eine andere Firewall) der SQL-Box schließt eingehende Verbindungen ab.

Wenn der Servername korrekt ist, wird dies letztendlich zu einem Netzwerkproblem und Sie müssen herausfinden, warum der Client keine Verbindung zum Server herstellen kann (und dies ist wahrscheinlicher ein grundlegendes Netzwerkproblem als ein SQL Server-Konfigurationsproblem.) .

7
Chris J

Ich hatte das gleiche Problem in meiner ASP.NET MVC 4-Anwendung. 

Die Art, wie ich es gelöst habe, war in der DatabaseContext. Durch die Weitergabe des Namens der Verbindungszeichenfolge wollte ich durch den Basiskonstruktor gehen.

public class DatabaseContext : DbContext
{ 
    public DatabaseContext()
        : base("DefaultConnection") // <-- this is what i added.
    {
    }

    public DbSet<SomeModel> SomeModels { get; set; }
}
7
Kristian Nissen

Ändern Sie Ihr.\SQLEXPRESS und fügen Sie nur Ihren SQL-Expressnamen hinzu

 <add name="BlogDbContext" connectionString="data source=your name here; initial catalog=CodeFirstDemo; integrated security=True" providerName="System.Data.SqlClient"/>

Gehe zu Fenster + R und tippe services.msc ein und drücke Enter.

Starten Sie den SQL-Server dann manuell, wenn er nicht automatisch gestartet wird.

Dann versuchst du dich einzuloggen, es muss funktionieren.

2
Venkatesh K

Ich hatte den gleichen Fehler und habe den SQL Server Express-Dienst gestartet, und es hat funktioniert. Hoffe das hilft.

2
Hưng Ngô

ich hatte dieses Problem und habe es behoben. Das Problem schien folgendes zu sein:

falsch:

<add key="aaa" value="server=[abc\SQL2K8];database=bbb;uid=ccc;password=ddd;" />

recht

<add key="aaa" value="server=abc\SQL2K8;database=bbb;uid=ccc;password=ddd;" />
1
Ash

In meinem Fall habe ich nach Dienstleistungen gesucht. Dann wurde ein Dienst namens "SQL Server (SQLEXPRESS)" gefunden. Klicken Sie dann mit der rechten Maustaste darauf. Wählen Sie Eigenschaften aus. Klicken Sie dann auf "Start". Das ist alles. Das Problem wurde behoben.

1

Wir haben vor kurzem dieselbe Ausgabe bekommen. Wir haben herausgefunden, dass der Code in der Datei machine.confg nach der Verbindungszeichenfolge "LocalSqlServer" sucht. Wir haben diese Zeile hinzugefügt und es funktioniert gut.

1
NathanPillai

Das Problem wird dadurch verursacht, dass der DNS den Hostnamen nicht auflösen kann. Versuchen Sie, die IP-Adresse anstelle des "Computernamens" zu verwenden. 

1
user5362299

In meiner Instanz wurde der Name von connectionString in der Datei web.config falsch geschrieben. Dies ist der Name des Datenbankkontexts, den Entity Framework verwendet. Ich denke, dies ist der Fehler, den Sie erhalten, wenn EF den Namen von connectionString nicht mit dem Kontext abgleichen kann. 

1
RMuesi

Dieses Problem hat mich etwa einen Tag in Anspruch genommen. In einem meiner ASP.NET MVC-Projekte hatte ich glücklicherweise das Problem auf meiner Maschine und nicht in der Produktionsumgebung. Wenn ich web.config vergleiche, sehe und entferne ich den Fehler Verbinden Sie den SQL Server-Fehler 26 mit diesem Problem

0
David

Wenn Sie die Developer Edition von SQL Server verwenden, ändern Sie ".\SQLEXPRESS" in den Computernamen in der Verbindungszeichenfolge.

Vor:

Datenquelle =.\SQLEXPRESS; Anfangskatalog = SchoolDB-EF6CodeFirst; Integrierte Sicherheit = True; MultipleActiveResultSets = True

Nach:

Datenquelle = DESKTOP-DKV41G2; Anfangskatalog = SchoolDB-EF6CodeFirst; Integrierte Sicherheit = True; MultipleActiveResultSets = True

0
emert117

Gleicher Fehler. In meinem Fall habe ich das Setzen des Projekts als "Startprojekt" gelöst.

0
Antonio Santise