我有一个使用MySql数据库的C#应用程序,在一段时间不活动(8小时)或连接到托管数据库的服务器丢失后,数据库连接将被关闭,无法执行数据库查询。如何启用自动重新连接到数据库。
祝好。
我有一个使用MySql数据库的C#应用程序,在一段时间不活动(8小时)或连接到托管数据库的服务器丢失后,数据库连接将被关闭,无法执行数据库查询。如何启用自动重新连接到数据库。
祝好。
我认为首先应该解决的问题是,为什么连接会一直保持8小时?
我认为在大多数情况下,您会连接到数据库,完成您要做的事情,然后关闭它:
using (var conn = new MySqlConnection(connString))
{
// do what you need here
}
if (conn.State != ConnectionState.Open)
{
conn = new MySqlConnection(connString);
}
如果尝试访问数据库失败,请再次运行连接命令。
您可以在连接字符串中使用选项keepalive
和keepalivetimeout
。最好使用MySqlConnectionStringBuilder
。
感谢您的答案和建议。我有这个要求,因为持久性委派给了非托管代码,而在我的C#代码中,我只调用这个API。
我通过更改wait_timeout
MySQL参数来解决了我的问题,该参数的默认值为28800秒(8小时),表示闲置期间的时间。