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服务器我正在连接到
尝试添加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会认为现有的事务正在进行其他数据库.