It appears that certain versions of ADO.NET can default to automatically enlisting a connection into an existing transaction. See http://msdn.microsoft.com/en-us/library/ms254973.aspx for more detail, but I expect somehow somewhere ADO is confused into thinking that there's an existing transaction going on to some other db.
解决办法:
连接字符串后面加上;AutoEnlist=false;
<add name="DB" connectionString="server=localhost;database=futures;uid=root;pwd=;allow zero datetime = true;charset='utf8';AutoEnlist=false;"/>
参考资料:
http://stackoverflow.com/questions/7265734/why-does-opening-a-connection-throw-a-distributed-transactions-error-in-mysql
http://www.cnblogs.com/nielsliu/articles/1280038.html
https://msdn.microsoft.com/en-us/library/ms254973.aspx
http://dev.mysql.com/doc/refman/5.1/en/connector-net-connection-options.html
本文探讨了ADO.NET中连接默认自动加入现有事务的问题,并提供了解决方案,即通过设置连接字符串中的AutoEnlist参数为false来避免此问题。
7585

被折叠的 条评论
为什么被折叠?



