2011-08-16 98 views
0

尽管对MSDTC各种物品,我似乎无法找到MSDTC的一些详细的解释弄清楚我需要如何配置它为我的特殊情况。MSDTC和分布式计算

这是我的场景。我有几个运行在框A上的WCF服务,一个运行在框B上的SQL服务器和一个框C上的测试解决方案。在我的测试中(框C),我几乎要调用一些服务(框B) ,做一些最终写入数据库的工作。当我使用与测试相同的盒子上的SQL数据库运行这些测试时(框C),一切都很好,每个人都很开心。但是,一旦我只是改变供试品溶液,使其指向上盒-B的SQL服务器数据库中,我得到异常:对于分布式事务管理器

网络访问(MSDTC)已被禁用。请使用组件服务管理工具在MSDTC的安全配置中启用DTC以进行网络访问。

一个我已经是我没有在测试盒(箱C),所以为什么当我与数据库这里运行测试本地这里没有被抛出该异常启用MSDTC的问题吗?如果我需要启用MSDTC,是否需要为所有三个盒子(A-B-C)启用它?

谢谢!

回答

3

MSDTC是默认启用的,但网络访问被禁止。

所以,当你有横机谈论失败。

您将需要启用网络。看到这篇文章。

http://technet.microsoft.com/en-us/library/cc753510%28WS.10%29.aspx

我有同样的问题,一个星期左右前,它固定对我来说。

+0

我跟着页面,并为SQL框(框B)设置了所有列出的内容。我也允许DTC通过防火墙,但是现在我得到了这个例外:由于通信问题,MSDTC事务管理器无法从源事务管理器获取事务。可能的原因是:存在防火墙,并且它没有MSDTC进程的例外情况,两台计算机无法通过其NetBIOS名称找到彼此,或者没有为两个事务管理器之一启用对网络事务的支持。 – 5StringRyan

+0

是否在Box A/C上启用MSDTC网络访问? – Cliffboss

+0

我已启用MSDTC,并在所有防火墙中插入洞。我忘记提到的一个更新,服务和SQL框(A和B)在同一个域上,而测试框(框C)在另一个域上。 – 5StringRyan