2016-10-17 5 views
0

Ich versuche, eine Verbindung zu einem MSSQL-Server von einer C# ASP.Net-Kernanwendung herzustellen, die in OSX ausgeführt wird. Der MSSQL ist auf einer separaten Maschine, die Firewall so konfiguriert ist, Verbindungen über TCP-Port 1433 und über UDP-Port zu lassen 1434..Net-Core-Verbindungszeichenfolge zu MSSQL von OSX

Die Verbindungszeichenfolge ich verwende ist:

Server=IP\SQLEXPRESS;Database=DB_NAME;user id=****;password=*****

Was ist sehr verwirrend an dieser Stelle ist, dass die gleiche Verbindungszeichenfolge einwandfrei funktioniert von Windows und Visual Studio und Visual Studio Code. In dem Moment, in dem ich in meinem OSX neu starte, öffnet VS Code das Projekt, löst aber die gefürchtete Ausnahme aus. Ich habe keine Ahnung was zu tun ist, da dieser Code funktionieren sollte. Was macht die OSX-Implementierung des SQL Server-Connectors so anders?

+1

versuchen, Port-Nummer am Ende – TheGameiswar

+0

@TheGameiswar, leider bekomme ich immer den gleichen Fehler. Ich habe versucht alle Kombinationen wie: 'IP, 1433',' IP, 1434', 'IP \ SQLEXPRESS, 1433' usw., die ich denken kann, aber immer mit dem gleichen Ergebnis ... –

+0

Ist dies eine Zeichenfolge Literal im Code? Ich hatte ein ähnliches Problem, weil ich '' 'nicht entkommen konnte. Wenn dies nicht der Fall ist, würde ich davon ausgehen, dass Sie tatsächlich eine Verbindung zu Port 1433 auf dem Zielserver herstellen können (z. B. Telnet). – Pawel

Antwort

0

Anscheinend unterstützt die * nix-Implementierung der UseSQLServer-Methode keine Instanznamen. Daher ist IP,port der Weg zu gehen.

1

Wie Giuseppe sagte, müssen Sie IP, Port verwenden. Benannte Instanzen können auf verschiedenen Ports ausgeführt werden, und Windows-Clients (z. B. SQL Management Studio) erkennen den Port, indem sie den SQL-Browser-Dienst anfragen. In diesem Fall sollten Sie SQL Configuration Manager öffnen, zu SQL Server Netzwerkkonfiguration -> Protokolle für SQLExpress (oder was auch immer Name der Instanz) -> TCP/IP (Rechtsklick) -> Eigenschaften -> IP-Adressen Registerkarte, Scrollen Sie nach unten und sehen (und/oder) den aktuellen Port.

+0

I * am * Giuseppe (beide fragen und antworten) :) –