Ich habe eine C # -Anwendung erstellt, die eine SQL Server-Datenbank verwendet. Ich habe andere Computer in einer Arbeitsgruppe mit mir und untereinander verbunden. Ich habe meine C # -Anwendung mit anderen geteilt. Wenn sie die Anwendung öffnen, erhalten sie den Fehler
Beim Herstellen einer Verbindung zu SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht zugänglich
Aber die Anwendung funktioniert gut auf meinem PC. Die Verbindungszeichenfolge, die ich verwende, ist
Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159
welches in einer .config
Datei gespeichert ist .
Die Anwendung funktioniert gut auf meinem PC. Was muss ich tun? Ich habe TCP / IP auf dem Server aktiviert, aber der gleiche Fehler bleibt bestehen. Einige Änderungen in der Verbindungszeichenfolge oder etwas anderes?
quelle
Antworten:
Es gibt zwei Sicherheitsstufen, die geändert werden müssen, um den Remotezugriff zu ermöglichen.
SQL Server-Konfiguration . In den Editionen Express, Developer und Enteprise Evaluation ist die Verbindung über das TCP / IP-Protokoll standardmäßig deaktiviert . Aktivieren Sie dies mit SQL Server Configuration Manager.
Windows-Firewall . Während das vollständige Deaktivieren der Firewall für diese Komponente funktioniert , ist dies keine bewährte Sicherheitsmethode (und auch nicht erforderlich). (Hinweis: In diesem Abschnitt gehe ich von einer Standardkonfiguration aus . Es können viele Einstellungen geändert werden, die sich geringfügig auf diese Schritte auswirken.)
Abhängig vom Typ der SQL Server-Instanz, zu der Sie eine Verbindung herstellen, gibt es zwei Fälle:
Standardinstanz (Verbindung nur über den Computernamen). Fügen Sie eine Zulassungsregel für eingehende Nachrichten entweder am TCP-Port 1433 oder am Datenbankmoduldienst hinzu.
Benannte Instanz (Verbindung über Computername + Instanzname). Fügen Sie am UDP-Port 1434 eine Zulassungsregel für eingehenden Zugriff auf den SQL Browser-Dienst hinzu. Fügen Sie dem Datenbankmodul-Dienst eine Regel zum Zulassen eingehender Nachrichten hinzu.
Dieses Verfahren ist vollständig dokumentiert hier , oder Sie können mir erklären , beobachten und dann durch die Konfiguration für eine benannte Instanz gehen hier .
quelle
Sie müssen die richtigen Netzwerkeinstellungen in Ihrem SQL-Server festlegen: Active TCP / IP in SQL-Server Stellen Sie außerdem sicher, dass Ihr Server-Browser-Dienst ausgeführt wird, da Sie nicht auf den SQL-Server zugreifen können, wenn er gestoppt wird. Server.
quelle
Stellen Sie sicher, dass der SQLBrowser-Dienst wie von Bendeg erwähnt aktiviert ist und dass UDP 1434 auf Ihrem Computer geöffnet ist, damit Clients den SQLBrowser-Server aufrufen können, um den Namen aufzulösen. Öffnen Sie auch den TCP / IP-Port der benannten Instanz.
Um den Port Ihrer Instanz zu finden, stellen Sie eine Verbindung mit dem Präfix tcp: in Management Studio wie folgt her: tcp: ASHISHPC1 \ SQLEXPRESS. Das Ergebnis der folgenden Abfrage sollte der Port sein, den Sie für die Clients in Ihrer Arbeitsgruppe bereitstellen müssen.
quelle
Ich habe die Windows-Firewall für das Heimnetzwerk ausgeschaltet und es hat gut funktioniert. Vielen Dank an alle .. :)
quelle
Ihr SQL Server muss TCP / IP-Verbindungen zulassen und Ihre Windows-Firewall muss für das Heimnetzwerk deaktiviert sein. http://learnadvancecsharp.blogspot.in/2013/09/how-to-access-sql-server-database-from.html
quelle