C# 程序在MySqlConnection.Open()调用上无限期挂起
我正在使用MySqlConnection访问远程数据库。它在大多数计算机上运行良好 不过。现在我遇到了一个MySqlConnection.Open()调用永远挂起的情况。我添加了一些write语句以查看它挂起的位置。请参阅下面的代码。语句“_Debug.Write”(“OpenConnection”,“Connection successed”);”从未到达。也没有抛出异常。我试图以管理员身份运行该应用程序,但它仍然挂起在这里。 这一定是环境问题,因为这在所有其他计算机上都可以正常工作。(我正在使用.NET Framework 3.5) 有人能解决这个问题吗?我希望如此。 问候 罗布·巴伊 ----------------------------------------------------我的c#源代码 私有MySqlConnection; 私有字符串_server=“server=5.666.82.191;Database=unknown;Uid=me;Pwd=mypasswd”C# 程序在MySqlConnection.Open()调用上无限期挂起,c#,mysqlconnection,C#,Mysqlconnection,我正在使用MySqlConnection访问远程数据库。它在大多数计算机上运行良好 不过。现在我遇到了一个MySqlConnection.Open()调用永远挂起的情况。我添加了一些write语句以查看它挂起的位置。请参阅下面的代码。语句“_Debug.Write”(“OpenConnection”,“Connection successed”);”从未到达。也没有抛出异常。我试图以管理员身份运行该应用程序,但它仍然挂起在这里。 这一定是环境问题,因为这在所有其他计算机上都可以正常工作。(我正在
connection.close()代码>这是多余的,因为它是在使用
块的中创建的
如果您正在连接到远程服务器,并且您失去了internet连接,这一点尤其有用
connection.open()
不会无限期挂起,但它将挂起其所属线程一段不希望的时间。如果引发异常
,该怎么办。。。不是MySqlException
?可能是连接字符串错误。它最终会“超时”吗?不会。它无限期地挂着。我不知道为什么。我想默认的超时时间是30秒。你能在getData()中显示你在做什么吗代码>?
public void getUserData()
{
using (connection = new MySqlConnection(_server))
{
if (OpenConnection())
{
getData();
connection.Close();
}
}
}
private bool OpenConnection()
{
bDatabaseConnectionSucceeded = false;
try
{
_Debug.Write("OpenConnection", "Opening connection now!!");
connection.Open();
bDatabaseConnectionSucceeded = true;
_Debug.Write("OpenConnection", "Connection succeeded.");
return true;
}
catch (MySqlException ex)
{
_Debug.Write("OpenConnection", "Connection failed." + ex.Message);
Debug.WriteLine(ex.Message);
return false;
}
}