问题描述
线上并发量大后,就出现System.Transactions.TransactionManagerCommunicationException:与基础事务管理器的通信失败。--->System.Runtime.InteropServices.COMException:由于通信问题,MSDTC事务管理器无法从源事务管理器提取事务。可能原因如下:存在防火墙并且没有MSDTC进程的例外、两台计算机根据其NetBIOS名称无法找到彼此,或未对于两个事务管理器之一启用网络事务支持。(异常来自HRESULT:0x8004D02B)然后,sqlserver就阻塞锁表导致,访问受阻,怎么解决,谢谢。并发不大,就正常的,唉~
解决方案
解决方案二:
貌似并发引起死锁,造成TransactionScope出现异常异常不是TransactionScope引起的
解决方案三:
事务隔离级别是?
解决方案四:
贴代码调试画面,不要紧紧贴异常信息。你是搞技术研发的,不是只能用任何不懂技术都会的那种方式来报告bug的。如果从技术上说,如果直接使用你的.net驱动的Transaction类库可以,就不要绕远去使用什么TransactionScope。当然还有你的具体的事务中的是否存在坑爹的操作(例如不能在2秒钟内完成而需要10秒钟才能完成的操作),等等。对于一个程序员首先要做到的不是这些技术,而是遇到问题时能够动手调试并且把调试画面贴出来。否则标题党总是会堆砌一堆无关的技术然后引起一堆问题出来。
解决方案五:
IsolationLevel=IsolationLevel.RepeatableRead
解决方案六:
仅通过这些描述无法判断问题,除非有人也曾经碰到过此问题
时间: 2025-01-21 10:44:29