首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MSDTC中禁用网络访问

在MSDTC中禁用网络访问
EN

Stack Overflow用户
提问于 2010-12-14 17:49:06
回答 1查看 3.2K关注 0票数 0

我在单元测试中使用System.Transactions.TransactionScope()插入记录,尝试读取记录,并让事务范围回滚,以便在数据库中不留下任何脚印。

代码语言:javascript
复制
1  var rep = new RunRepository();
2  using (var scop = new TransactionScope())
3  {
4     var runId = rep.SaveSwrsRun([Run data elements]); // returns PK RunId
5     var run = rep.FetchSwrsRun(runId);  // returns an object of type Run
6     Assert.IsNotNull(run);
7  }

第5行抛出一个带有错误消息的异常。

System.Transactions.TransactionManagerCommunicationException :已禁用分布式事务管理器的网络访问。请使用组件服务管理工具在MSDTC的安全配置中启用用于网络访问的DTC。

我已经检查了组件服务管理工具,我的工作站确实启用了DTC。我还发现了这个MSDTC事务范围问题线程,它将我引导到如何启用网络DTC访问

但是,当我选中SQL服务器时,已经选中了远程访问复选框。还有其他人有其他想法吗?

更多细节..。当我强制Repository保持相同的连接,而不返回池为第二个Sql语句返回池时,它可以工作。显然,对第二个sql语句使用不同的连接会触发DTC将事务升级到“分布式模式”(它不应该这样做,因为两个sql语句都在同一台服务器上,并且使用完全相同的连接字符串),更不用说,即使使用了,该(分布式模式)仍然应该工作。

EN

回答 1

Stack Overflow用户

发布于 2012-08-02 01:28:51

如果您的DTC服务已运行,请单击“安全配置”,并在“安全设置区域”上检查“网络DTC访问”。如图所示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4442343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档