2015-09-12 31 views
0

我正在使用VB.NET和MySQL,我正在測試我的應用程序是否可以處理錯誤的數據庫連接。如何處理「無法連接到任何指定的MySQL主機」。

一個特定的情況是當我輸入錯誤的數據庫IP地址,例如,而不是192.168.1.100我會輸入192.168.1.101這是錯誤的。

爲此,我試圖用我的try, catch嘗試捕捉能夠捕捉那種錯誤的但不幸的是我的電腦掛出了一定的分鐘。

這是代碼我使用

Public Sub Update_DB_Con() 
    Check_DB_Con() 
     Try 
      MysqlConn.Open() 
      frmStatus.Database_Status = "Connected" 
      MysqlConn.Close() 
      MysqlConn.Dispose() 
     Catch myerror As MySqlException 
      frmStatus.Database_Status = "Disconnected" 
      Console.WriteLine(myerror) 
      Console.Write("IAM CATCH") 
     End Try   
End Sub 

所以我的問題是,我該如何妥善處理的MySQL超時請求?

+0

可以縮短連接超時用在連接字符串的屬性,大概也與Connection對象上的屬性,但我真的只使用自己的SqlConnection。 – Crowcoder

+0

顯示您的連接字符串(_hide服務器名和數據庫名_) –

+0

你指定的端口('ex.Port:3306;')在MySQL連接字符串? –

回答

1

你面對的TCP/IP在試圖解決這一問題的設計。您實際指定的主機沒有在MySQL端口上運行的服務器(通常爲3306),因此不會響應來自程序的連接請求。它既不接受也不拒絕連接。由於TCP的全球覆蓋範圍,它希望服務器有足夠的時間響應連接。這就是爲什麼它在幾毫秒內不會超時的原因。

連接器/ NET已經內置支持服務器的池,以便再次自動超時後嘗試。

嘗試增加ConnectionTimeout = 5到連接字符串。默認值是15.但要注意在生產中這樣做;默認情況是在大型繁忙系統具有永續性的經驗之後選擇的。

相關問題