虽然有各种关于MSDTC的文章,但我似乎找不到一些关于MSDTC的详细解释,无法弄清楚我需要如何为我的特定场景配置它。
这是我的场景。我有一些WCF服务在机器A上运行,SQL-Server在机器B上运行,测试解决方案在机器C上运行。在我的测试(机器C)中,我几乎调用了几个服务(机器B),做一些最终写入数据库的工作。当我使用SQL数据库在与测试相同的盒子(盒子C)上运行这些测试时,一切都运行得很好,每个人都很高兴。但是,一旦我将测试解决方案更改为指向box-B上的SQL-server数据库,就会得到异常:
已禁用分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具在MSDTC的安全配置中为网络访问启用DTC。
我有一个问题是,我没有在测试框(框C)上启用MSDTC,那么当我在这里使用本地数据库运行测试时,为什么没有抛出这个异常?如果我需要启用MSDTC,是否需要对所有三个框(A-B-C)都启用它?
谢谢!
发布于 2011-08-17 01:04:12
默认情况下启用MSDTC,但网络访问处于禁用状态。
因此,当你进行跨机器交谈时,它会失败。
您需要启用网络。请参阅这篇文章。
http://technet.microsoft.com/en-us/library/cc753510%28WS.10%29.aspx
大约一周前,我遇到了同样的问题,它帮我解决了这个问题。
https://stackoverflow.com/questions/7081823
复制相似问题