【发布时间】:2017-06-20 14:33:06
【问题描述】:
我有一个使用 MySqlConnection 类的 .NET Core 程序。我的数据库是存储在 Azure 中的 ClearDB 数据库。
当我启动程序时,它会正常工作。但是当我等待 10 分钟什么都不做时,它不会再连接到数据库(超时?)。重新启动程序,它再次工作。
查看 ClearDB 网页上的连接时,当我在程序中关闭它时,它并没有关闭。正如我在 ClearDB 网页中看到的那样,大约 10 分钟后它会自动关闭。但是随着程序仍在运行,它将不再连接到数据库。重启程序是唯一的解决办法。
现在的代码如下所示:
private static async Task<uint> getDeviceId(string macAddress)
{
using (var connection = new MySqlConnection(ConnectionString))
{
uint returnvalue = 0;
var cmd = connection.CreateCommand() as MySqlCommand;
cmd.CommandText = @"SELECT id FROM devices WHERE mac = '" + macAddress + "'";
connection.Open();
Console.WriteLine(connection.State);
DbDataReader reader = await cmd.ExecuteReaderAsync();
using (reader)
{
while (await reader.ReadAsync())
{
returnvalue = await reader.GetFieldValueAsync<uint>(0);
}
}
reader.Dispose();
cmd.Dispose();
return returnvalue;
}
}
我尝试了以下方法:
- 使用语句
- 关闭/释放连接、读取器和命令
- 连接字符串中的 Pooling=false
但它们都不起作用。有人有想法吗?
【问题讨论】:
标签: c# azure .net-core cleardb mysqlconnection