Archive for June, 2011

Wednesday, June 29th, 2011

SQL Server und C# – Fehler 26 beim Verbinden

Eine kleine Anekdote aus dem Leben eines Entwicklers….

Im Moment bin ich gerade an einem Tool, dass auf einem MSSQL Server zugreifen muss. Leider funzte dies nicht auf Anhieb. Folgende Fehlermeldung haute es mir um die Ohren:

Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: SQL Network Interfaces, error: 26 – Fehler beim Bestimmen des angegebenen Servers/der angegebenen Instanz)

Die Ursache war schnell gefunden: Mein Verbindungsversuch scheitert kläglich an unserer Hardware-Firewall. Da meine gewünschte Serverinstanz nicht den Defaultport 1433 sondern 1044 verwendet, machte das Ganze auch nicht einfacher. Im Log der Firewall wurden Verbindungsversuche über den RPC-Port 135 und 137 (Netbios) geblockt, was noch mehr Fragezeichen bedeuteten.

Die Lösung war allerdings extrem simpel: In meinem Connectionstring kann man auch den Port angeben, der benutzt werden soll. Gibt man keinen Port an, wird scheinbar erstmal beim Server (mit RPC) nachgefragt “Hallo ich will zu dieser Instanz, erzähl mir mal den Port” und dann wird der entsprechende Port mitgeteilt. Als Beispiel sieht der dann so aus: (“\meineInstanz” kann natürlich auch weggelassen werden)

Data Source=123.123.123.123\meineInstanz,1044;Initial Catalog=Blubb;User ID=User;Password=password;

Happy Coding….

Erstellt von Dani | Abgelegt in Computer | 1 Kommentar »