今天WCF事务编程的时候遇到这个错误:The transaction under which this method call was executing was asynchronously aborted.此方法调用的事务被异步中断。
错误截图如下:
原因可能由多个。我查询了很多资料。国内论坛很少有人讨论这个问题。MSDN英文论坛有人遇到过,他们也给出了解决问题的方式。但是我尝试了不起作用。
最后检查是客户端没有启动事务流引起的。修改以后便可以运行。下面总结一下全部的可能的解决办法:
1.
[
ServiceBehavior
(TransactionTimeout =
"00:10:00"
)],服务类添加事务超时属性,也可以再配置文件里。原文:http://social.msdn.microsoft.com/Forums/en-US/windowstransactionsprogramming/thread/745b961f-0a95-407c-bbe5-9d67597b7b6f;
2.mismatch of transaction isolation levels etc,隔离级别等信息部匹配。原文链接:http://social.msdn.microsoft.com/Forums/en-US/windowstransactionsprogramming/thread/745b961f-0a95-407c-bbe5-9d67597b7b6f;
3.客户端启动事务流,默认客户端终结点transactionFlow="false" ,修改为transactionFlow="true" .
4.还有就是可能是调用的操作参数不符合要求所致。我这里把参数的长度过长也会出现这个错误。
以上就是可能的原因。大家修改的时候全部考虑,综合检查。能找到解决问题的方法。也欢迎补充。
本文转自 frankxulei 51CTO博客,原文链接:http://blog.51cto.com/frankxulei/320948,如需转载请自行联系原作者