Ich sehe die folgende Fehlermeldung beim Versuch, eine DB-Verbindung zu öffnen aus meiner C# -Anwendung. Ich realisiere, dass dieser Fehler wahrscheinlich schon bei 100 von Fragen aufgetreten ist. In diesem Szenario wird jedoch der Fehler zeigt sich nur auf # apps C auf meinem speziellen Desktop-PC läuft. Ich habe das Internet über Google und innerhalb dieser Website durchforstet, aber ich kann keine Lösung finden.SqlConnection auf Named Pipes steckte
ERROR:
„Ein netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server Der Server wurde nicht gefunden oder war nicht erreichbar Überprüfen Sie, dass der Instanzname richtig ist und dass SQL Server.. so konfiguriert ist, Remote-Verbindungen zu ermöglichen. (Anbieter: Named Pipes-Anbieter, Fehler: 40 - keine Verbindung zu SQL Server öffnen kann)“
WARUM Dieses Szenario ist einzigartig:
ich in der Lage bin zu der SQL verbinden Server von SQL Server Management Studio (SSMS). Diese Anwendung auf einem anderen Computer arbeitet und in der Lage, von dort aus eine Verbindung mit dem SQL-Server herzustellen. Dieses Fehlerszenario ist also spezifisch für C# -Anwendungen, die auf meinem speziellen Desktop-PC ausgeführt werden. Andere Apps funktionieren (SSMS). Andere PCs arbeiten.
Wenn ich mit Wireshark „den Draht schnuppern“, die Spur zeigt mir, dass mein App über NamedPipes zu verbinden versucht, (d \ Server \ IPC $). Ich kann es anscheinend nicht zwingen, TCP/IP zu benutzen.
THINGS ich versucht habe:
- Re-installed.NET Rahmen
- Re-Installation von Visual Studio (C# - Express-Version 2010)
- einen Alias innerhalb cliconfg.exe Erstellt.
Gibt es etwas, was ich verpasst?
Hier sind Verbindungszeichenfolgen Ich habe versucht ...
Data Source=<servername>;Initial Catalog=HIE;Integrated Security=true
Server=tcp:10.240.11.81;Integrated Security=SSPI; database=HIE
Data Source=10.240.11.81,1433;Network Library=DBMSSOCN;Initial Catalog=HIE;User ID=<SqlUserIdThatISetUpAsSysAdmin>;Password=<password>
Hier ist der Code-Schnipsel:
_conn = new SqlConnection(); // _conn declared globally
_conn.ConnectionString = <the connection string above>;
_conn.Open();
Setzen Sie den 'tcp:' auch für die 'Datenquelle' ein. Hard Code die Verbindungszeichenfolge in den C# Quellcode. Ihr wireshark-Debugging war sehr gut, weil es zeigt, dass es tcp nicht verwendet. – usr
Danke für die schnelle Antwort @ usr. Mann .. ihr seid SCHNELL! Ich habe versucht "Datenquelle = TCP:; Erster Katalog = HIE; Integrierte Sicherheit = True" und "Datenquelle = TCP: 10.240.11.81; Erster Katalog = HIE; Integrierte Sicherheit = True" und bekam neue Nachrichten: (Provider: TCP Provider, Fehler: 0 - Bei einer Datenbanksuche ist ein nicht behebbarer Fehler aufgetreten.) Und (Provider: TCP Provider, Fehler: 0 - Ein ungültiges Argument wurde angegeben.) Google gab mir zu diesen Fehlermeldungen nichts. Die "HIE" -Datenbank existiert auf dem Server. –
Das ist verrückt. Der Fehler weist laut Google auf sehr seltsame Zustände hin. Können Sie den SQL Server über diese IP und den Port 1433 telnet? Wird die App als Administrator ausgeführt? Deaktivieren Sie UAC oder laufen Sie bitte erhöht. Bitte führen Sie Wireshark erneut aus. Was ist das? – usr