2017-07-21 55 views
0

我開發了一個利用Entity Framework 6連接到本地MySQL數據庫的C#/ WPF應用程序。在本地計算機上運行時,該應用程序運行良好。但是,當我在其他系統上安裝應用程序並運行它時,它會在需要訪問數據庫時崩潰。在另一臺計算機上使用本地數據庫時發生C#WPF應用程序崩潰

捕捉異常並彈出消息,我得到消息「值不能爲空參數名稱:源。」從這篇文章,Value cannot be null. Parameter name: source,我認爲這是因爲我的連接字符串是錯誤的,或者我沒有做正確的事情來允許遠程數據庫訪問。

這是我的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""

我使用的IP地址是從CMD => IPCONFIG => IPv4的獲得本地系統的真實IP地址。

經過大量的谷歌搜索和堆棧溢出搜索後,我還沒有找到解決方案。我不希望其他計算機上的本地數據庫實例,它們都應該遠程連接到本地計算機上託管的數據庫。我不認爲應該有任何問題連接,因爲所有的系統都在同一個網絡上,我可以用其他計算機的本地數據庫來ping計算機。

我試圖讓使用下面的語句在MySQL中其他計算機的遠程訪問: CREATE USER '%'@'(IPADDRESS)' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON *.* TO '%'@'(IPADDRESS)' WITH GRANT OPTION; 也試過以下阿薩夫在這個崗位(WPF application doesn't work in other computers)解決方案。但是,兩者都不適合我。

如果任何人都可以解釋如何發佈一個訪問MySQL數據庫的C#/ WPF應用程序,那就太好了。

編輯:更多編輯代碼以查看異常後,我收到錯誤「底層提供程序在打開時失敗」。現在看看。

編輯:求助!謝謝你。需要以「root」(How to allow remote connection to mysql)啓用遠程連接,刷新特權並重新啓動MySQL服務器。之後,該應用程序工作。

+1

以'root'啓用遠程連接:https://stackoverflow.com/questions/14779104/how-to-allow-remote-connection-to-mysql – obl

+0

不幸的是,這並沒有做到這一點。雖然爲了查看異常來自何處而編輯了一些代碼之後,我得到錯誤「底層提供程序在打開時失敗」。現在看看這個。 – JonTan

+0

您是否檢查連接端口是否在數據庫服務器上打開(防火牆設置)?默認的端口是3306的mysql ... – hugoterelle

回答

相關問題