4

ローカル MySQL サーバーへの接続を開いていますが、connection.Open()メソッドで次のエラーがスローされます。

System.NotSupportedException: MySQL Connector/Net は現在、分散トランザクションをサポートしていません。
MySql.Data.MySqlClient.MySqlConnection.EnlistTransaction(トランザクション>トランザクション)で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 サーバーが 1 つしかありません。

4

1 に答える 1

10

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 が混乱して、他のデータベースに対して進行中の既存のトランザクションがあると考えるようになると思います。

于 2011-09-01T03:27:58.787 に答える