zoukankan      html  css  js  c++  java
  • 关于TransactionScope出错:“与基础事务管理器的通信失败”的解决方法总结

    遇到此问题先需确认几个问题:

           1)MS DTC是否设置正确?

           2)是否启用了防火墙?是否对DTC做了例外?

           3)是否做了hosts映射?是否跨网域通信?

    开发分布式事务,碰到一个错误“与基础事务管理器的通信失败”,去百度了一下,发现问这个问题的人甚多,但是能解决的却很少了,而且所提供的方法无法解决问题。没有办法,我只有转移到Google去搜索E文的。最后发现了三篇“有里程碑性质的文章”:

           http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/08.aspx

           http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/03/15/629.aspx

           http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/02/12/kb-msdtc-cross-different-domains.aspx

    1.错误描述:此错误一般就提示一句:

    中文就是:“与基础事务管理器的通信失败”

    E文就是:“Communication with the underlying transaction manager has failed”

    碰到此错误是极其郁闷的事情。明明MS DTC


       设置已经正确了啊!?

    2.错误排查:

    对你的目标DB(最少2台,多则不限)进行

    1.Telnet IP 135测试

    2.ping IP(DB的IP) 若是不通则不行

    3.反ping IP(应用的IP)        若是不通也不行

    4.查C:WINDOWSsystem32driversetc下hosts文件

    应用的SERVER做如下映射:  eg:  192.168.1.10 DB-Server-1

    DB的SERVER做如下映射:  eg:  192.168.1.50 App-Server-1

          

    说明:关于Microsoft提到更改注册表设置RPC端口,我不是很赞成。除非遇到了严格的网络环境,Server必须在Firewall下工作,且无法解除所有限制的情况,只有走此下策。具体的设置参看:http://support.microsoft.com/kb/154596/zh-cn

           5.错误到此一般都能解决,但是还有相当一部分还是没能解决。那为什么?就是要关注lmhosts文件了,看第3

    3.Lmhosts文件

           此文件也位于C:WINDOWSsystem32driversetc,但是可能会看到lmhosts.sam,没有关系,去掉扩展名,就成了lmhosts,然后做映射:

    应用的SERVER做如下映射:  eg:  192.168.1.10 DB-Server-1

    DB的SERVER做如下映射:  eg:  192.168.1.50 App-Server-1

           是的,和做hosts差不多。这个是解决RPC跨网域通信的问题。一般做了此步,问题基本都可解决

  • 相关阅读:
    hello
    1234566i 还是规范
    萨嘎给
    DRF 商城项目
    DRF 商城项目
    DRF 商城项目
    Windows 上连接本地 Linux虚拟机上的 mysql 数据库
    xadmin 数据添加报错: IndexError: list index out of range
    python 实现聊天室
    xadmin 组件拓展自定义使用
  • 原文地址:https://www.cnblogs.com/zxktxj/p/3256704.html
Copyright © 2011-2022 走看看