开始 - 我猜 - 在从Developer Machine到Server Machine重新配置MySQL Server 5.7.17之后,我们的Web应用程序(.NET Core 1.2)停止了工作。每当我们尝试启动一个事务时,MySQL都会抛出一个异常"不支持嵌套事务。"我们使用连接池,关闭任何连接时没有处于打开状态的事务。实际上,我们在MySQL Server Community 5.7.17和Connector 7.0.6-IR31上使用了它超过2年,没有任何问题。
我将问题简化为即使在简单查询后服务器状态进入" InTransaction"。关闭此连接(返回到连接池)并在之后重新打开并启动事务会抛出异常。
将两台服务器更新为5.7.21,将Connector更新为8.0.10rc无法解决问题。
使用5.5.57(MariaDB)解决了这个问题,但是,由于这个问题,我们不想降级我们的服务器。
public static IDbConnection GetConnection()
{
var connection = new MySqlConnection(Settings.ConnectionString);
connection.Open();
return connection;
}
using (var dbConnection = GetConnection())
{
var list = dbConnection.Query("select * from cf_genre", null).ToList();
}
using (var dbConnection = GetConnection())
{
using (var transaction = dbConnection.BeginTransaction())
{
// Not reached! An exception is thrown: "Nested transactions are not supported."
}
}