【发布时间】:2014-07-21 12:12:57
【问题描述】:
我正在创建一个使用 MySQL 数据库存储数据的 C# (.NET 4.0) 应用程序。此数据库安装在第 3 方公司的服务器上,应用程序必须远程连接 - 目前通过域名 (myname.home.pl)。
另外有一个网站也使用同一个数据库,这个网站位于同一台服务器上,所以它通过localhost连接到数据库。
网站始终正常运行,连接没有问题。
C# 应用程序通常也可以成功连接,但有时它无法打开连接,并且在连接超时后它会返回错误:“无法连接到任何指定的 MySQL 主机”。我不知道发生这种错误的原因是什么。
此问题出现在 Windows XP 和 Windows 7 上,其他操作系统版本未经测试。
连接字符串格式如下(sqlData struct 包含登录数据):
connection.ConnectionString = String.Format(
"server={0};database={1};user='{2}';password='{3}';",
sqlData.Server,
sqlData.Catalog,
sqlData.User,
sqlData.Password
);
我在 stackoverflow 上找到了几个关于此错误的主题,但没有解决...
有没有人遇到过类似的问题?可能是什么原因,或者我怎样才能让它不发生?
感谢任何帮助的建议。
【问题讨论】:
-
您应该检查/发布有关该异常的所有内容(错误代码、任何其他内部异常)并检查服务器端日志。像这样……在雾中射击。一般来说,如果你通过互联网,你还应该设置一个尝试/重试模式(也许第一次尝试有更短的超时时间)。
-
Liekly 网络相关
-
exc.ToString() 只给了我信息: MySql.Data.MySqlClient.MySqlException (0x80004005): 无法连接到任何指定的 MySQL 主机。在 MySql.Data.MySqlClient.NativeDriver.Open() 在 MySql.Data.MySqlClient.Driver.Open() 在 MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder 设置) 在 MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()在 MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() 在 MySql.Data.MySqlClient.MySqlPool.GetConnection() 在 MySql.Data.MySqlClient.MySqlConnection.Open()
标签: c# mysql .net remote-connection