2011-09-01 39 views
3

我開到本地MySQL服務器,並在connection.Open()方法的方面,它拋出這個錯誤:爲什麼在MySQL中打開連接會引發分佈式事務錯誤? (.NET連接器)

System.NotSupportedException: MySQL Connector/Net does not currently support distributed transactions.
at MySql.Data.MySqlClient.MySqlConnection.EnlistTransaction(Transaction> transaction) at MySql.Data.MySqlClient.MySqlConnection.Open()

我做的是這樣的:

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

在App.config的連接字符串是

<add name="Connection" connectionString="server=localhost;user id=userid;Password=password;database=dbname" providerName="MySql.Data.MySqlClient" />  

我不知道爲什麼它試圖徵用事務,我還沒有指定的任何交易&我只有一個MySQL服務器我連接到

+0

什麼'ConfigurationManager.ConnectionStrings [「連接」]。ConnectionString'看起來像什麼? (請在發佈之前清理任何IP地址或密碼) – Femi

+0

我使用連接字符串更新了上述 –

回答

9

嘗試增加 Enlist=false到連接字符串:

編輯:從MySQL Connector/.NET documentation,如果在連接字符串中設置AutoEnlist=false它應該工作。

<add name="Connection" connectionString="server=localhost;user id=userid;Password=password;database=dbname;AutoEnlist=false" providerName="MySql.Data.MySqlClient" />  

似乎某些版本的ADO.NET可以默認自動將連接引入到現有事務中。有關更多詳細信息,請參見http://msdn.microsoft.com/en-us/library/ms254973.aspx,但我期望某處某處ADO被混淆爲認爲存在某個其他數據庫的現有事務。

+0

System.ArgumentException:不支持關鍵字。 參數名稱:enlist at MySql.Data.MySqlClient.MySqlConnectionStringBuilder.ValidateKeyword ... –

+0

哈,關閉!這是'自動登記'。我在MySql.Data代碼中打開了反射器並挖了一圈。更新您的答案,我會將其標記爲已接受,謝謝! –

相關問題