2017-07-21 2 views
0

Ich entwickelte eine C#/WPF-Anwendung mit Entity Framework 6, um eine Verbindung zu einer lokalen MySQL-Datenbank herzustellen. Die Anwendung funktioniert perfekt, wenn sie auf dem lokalen Computer ausgeführt wird. Wenn ich die Anwendung jedoch auf anderen Systemen installiere und sie ausführe, stürzt sie ab, sobald sie auf die Datenbank zugreifen muss.C# WPF-Anwendung mit lokaler Datenbank stürzt bei Verwendung auf einem anderen Computer

Abfangen der Ausnahme und Erstellen einer Nachricht Pop-up, erhalte ich die Meldung "Wert kann nicht null sein. Parametername: source." Von diesem Post, Value cannot be null. Parameter name: source, nehme ich an, dass dies daran liegt, dass meine Verbindungszeichenfolge falsch ist oder ich etwas nicht richtig mache, um den entfernten Datenbankzugriff zu ermöglichen.

Dies ist meine Verbindungszeichenfolge in App.config: connectionString="metadata=res://*/Database.csdl|res://*/Database.ssdl|res://*/Database.msl;provider=MySql.Data.MySqlClient;provider connection string="server=(ipAddress);user id=root;password=password;persistsecurityinfo=True;database=practice""

die IP-Adresse, die ich verwende, ist die echte IP-Adresse des lokalen Systems erhalten von cmd => ipconfig => IPv4.

Nach viel Googeln und Durchsuchen des Stack-Overflows habe ich noch keine Lösung gefunden. Ich möchte keine lokale Instanz der Datenbank auf den anderen Computern, sie sollten sich alle remote mit der auf dem lokalen Computer gehosteten Datenbank verbinden. Ich glaube nicht, dass ein Problem auftreten sollte, da sich alle Systeme im selben Netzwerk befinden und ich den Computer mit der lokalen Datenbank von den anderen Computern aus anpingen kann.

ich den Fernzugriff auf den anderen Computern in MySQL mit den folgenden Anweisungen zu geben versucht: CREATE USER '%'@'(IPADDRESS)' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON *.* TO '%'@'(IPADDRESS)' WITH GRANT OPTION; Auch versucht folgende Asaf-Lösung in diesem Beitrag (WPF application doesn't work in other computers). Jedoch funktionierte keiner für mich.

Wenn jemand erklären kann, wie man eine C#/WPF-Anwendung mit Zugriff auf die MySQL-Datenbank veröffentlicht, wäre das großartig.

BEARBEITEN: Nachdem ich den Code mehr bearbeitet habe, um die Ausnahme zu sehen, erhalte ich den Fehler "Der zugrunde liegende Provider ist beim Öffnen fehlgeschlagen." Schau dir das jetzt an.

EDIT: Gelöst! Danke dir, obl zu gehen. Erforderlich, um die Remote-Verbindung als 'root' (How to allow remote connection to mysql) zu aktivieren, Berechtigungen zu löschen und MySQL Server neu zu starten. Danach hat die Anwendung funktioniert.

+1

Remote-Verbindung als 'root' aktivieren: https://stackoverflow.com/questions/14779104/how-to-allow-remote-connection-to-mysql – obl

+0

Leider hat das nicht getan. Nachdem ich den Code ein bisschen mehr bearbeitet habe, um zu sehen, woher die Ausnahme kommt, bekomme ich den Fehler "Der zugrunde liegende Provider ist beim Öffnen fehlgeschlagen." Ich untersuche es jetzt. – JonTan

+0

Haben Sie überprüft, ob der Verbindungsport auf dem Datenbankserver geöffnet ist (Firewall-Einstellungen)? Der Standardport ist 3306 für mysql ... – hugoterelle

Antwort

Verwandte Themen