关于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
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:\WINDOWS\system32\drivers\etc\下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:\WINDOWS\system32\drivers\etc\,但是可能会看到lmhosts.sam,没有关系,去掉扩展名,就成了lmhosts,然后做映射:
应用的SERVER做如下映射: eg: 192.168.1.10 DB-Server-1
DB的SERVER做如下映射: eg: 192.168.1.50 App-Server-1
是的,和做hosts差不多。这个是解决RPC跨网域通信的问题。一般做了此步,问题基本都可解决
关于TransactionScope出错:“与基础事务管理器的通信失败”的解决方法总结的更多相关文章
- entityframework分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法
首先是ef的多数据库操作实现事务的方法 public int AddDifferenceDB(userinfo1 user1, userinfo user) { ; using (var test2D ...
- 部署K2 Blackpearl流程时出错(与基础事务管理器的通信失败或Communication with the underlying transaction manager has failed.
转:http://www.cnblogs.com/dannyli/archive/2011/12/01/2270222.html 亲,在部署K2流程是,是否遇到这个错误(以下是中.英文错误信息) 中文 ...
- 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。
今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...
- [mybatis-spring] Transaction 事务/事务处理/事务管理器
使用mybatis-spring的主要原因之一就是: mybatis-spring允许mybatis参与到spring 事务中. mybatis-spring leverage[use (someth ...
- 跟我学Spring3(9.2):Spring的事务之事务管理器
原文出处: 张开涛9.2.1 概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口PlatformTransactionManage ...
- spring事务管理器设计思想(二)
上文见<spring事务管理器设计思想(一)> 对于第二个问题,涉及到事务的传播级别,定义如下: PROPAGATION_REQUIRED-- 如果当前没有事务,就新建一个事务.这是最常见 ...
- spring事务管理器设计思想(一)
在最近做的一个项目里面,涉及到多数据源的操作,比较特殊的是,这多个数据库的表结构完全相同,由于我们使用的ibatis框架作为持久化层,为了防止每一个数据源都配置一套规则,所以重新实现了数据源,根据线程 ...
- Spring事务管理器的应对
Spring抽象的DAO体系兼容多种数据访问技术,它们各有特色,各有千秋.像Hibernate是非常优秀的ORM实现方案,但对底层SQL的控制不太方便:而iBatis则通过模板化技术让你方便地控制SQ ...
- spring简单事务管理器
事务管理器 <!-- Transaction manager for a single JDBC DataSource --> <bean id="transaction ...
随机推荐
- C# 固定窗体大小且不能鼠标调整大小完美实现
1.先把MaximizeBox和MinimumBox设置为false,这时你发现最大最小化按钮不见了,但是鼠标仍能调整窗体的大小. 2.有人说直接把MaximumSize和MinimumSize设置成 ...
- How Tomcat Works(九)
本文接下来描述servlet容器是怎样管理其相关组件的生命周期的,首先本人描述一下事件监听模式,也可以称为观察者模式,该模式分为以下角色 即抽象主题角色 具体主题角色 抽象观察者角色及具体观察者角色, ...
- 导入导出Excel
最近需要频繁的使用导入导出,各么,又不想使用ms的PIA,在4.0以下,存在版本兼容的问题. 于是网上查找了很久,找到两款开源的excel组件. 1.CSharpJExcel,这是JExcel的.ne ...
- Gulp 学习总结
Gulp 自动化工具开发非常方便,便于上手,值得使用. 一.Gulp安装 gulp是基于NodeJS运行的,所以需要想安装NodeJS. http://nodejs.org/download/ 安装 ...
- js 基于函数伪造的方式实现继承
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 使用UILocalizedIndexedCollation实现区域索引排序 及 不显示没有数据的区域
UILocalizedIndexedCollation可以实现区域排序,类似通讯录的样式. //首先进行初始化 locationCollation = [UILocalizedIndexedColla ...
- linux下mysql开启慢查询
mysql中最影响速度的就是那些查询很慢的语句.这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等.所以我们要找出这些语句,分析原因,加以优化. 1.方法1:用命令开启慢查询 1).查看 ...
- 组合方法(ensemble method) 与adaboost提升方法
组合方法: 我们分类中用到非常多经典分类算法如:SVM.logistic 等,我们非常自然的想到一个方法.我们是否可以整合多个算法优势到解决某一个特定分类问题中去,答案是肯定的! 通过聚合多个分类器的 ...
- 【HTML】KindEditor编辑器在ASP.NET中使用
本文大多内容来自KindEditor官网,自己加工理解后做的一个备份. 编辑器使用方法 1. 下载编辑器 下载 KindEditor 最新版本,下载之后打开 examples/index.html 就 ...
- Entity Framework 6 Code First +MVC5+MySql/Oracle使用过程中的几个问题
1. namespace Snapsia.Web.Models { using System; using System.Data.Entity; using System.ComponentMode ...