为什么打开连接会在MySQL中抛出分布式事务错误?(.NET连接器)

Gle*_*ven 3 .net mysql mysql.data

我正在打开与本地MySQL服务器的连接,并在该connection.Open()方法上抛出此错误:

System.NotSupportedException:MySQL Connector/Net当前不支持分布式事务.
在MySql.Data.MySqlClient.MySqlConnection.Open()的MySql.Data.MySqlClient.MySqlConnection.EnlistTransaction(Transaction> transaction)

我所做的就是:

var connection = new MySql.Data.MySqlClient.MySqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
connection.Open();
Run Code Online (Sandbox Code Playgroud)

app.config中的连接字符串是

<add name="Connection" connectionString="server=localhost;user id=userid;Password=password;database=dbname" providerName="MySql.Data.MySqlClient" />    
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它试图登记交易,我没有指定任何交易我只有一个MySQL服务器我正在连接到

Fem*_*emi 9

尝试添加Enlist=false到您的连接字符串:

编辑:从MySQL Connector/.NET文档,如果您AutoEnlist=false在连接字符串中设置它应该工作.

<add name="Connection" connectionString="server=localhost;user id=userid;Password=password;database=dbname;AutoEnlist=false" providerName="MySql.Data.MySqlClient" />    
Run Code Online (Sandbox Code Playgroud)

似乎某些版本的ADO.NET可以默认自动登记到现有事务的连接.有关更多详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms254973.aspx,但我希望在某种程度上ADO会认为现有的事务正在进行其他数据库.