前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TransactionScope 之分布式配置

TransactionScope 之分布式配置

作者头像
跟着阿笨一起玩NET
发布2018-09-18 17:46:12
5290
发布2018-09-18 17:46:12
举报

本文转载:http://blog.csdn.net/iwteih/article/details/4483372

TransactionScope是个好东西,可以自动管理transaction,即使是对分布式数据库也可以,但是需要一些配置(摸索了2天。。。), 本文的环境为windows 2003:

1. 对跑代码的机器和sql所在的服务器进行Component Services的配置

Administative Tools -> Component Services -> 点开Component Services -> Computers -> My computer -> 右键属性 -> 选择MSDTC -> Security Configuration -> 按如下配置 -> OK -> 重启Distributed Transaction Coordinator服务(一定要手动重启哟)

最重要的是Allow Inbound 和 Allow Outbound, 其他意义如下:

2. 配置防火墙,同样也是对跑代码的机器和sql所在的服务器进行配置

Windows Firewall -> Exceptions -> Add Program -> Browse -> "C:/WINDOWS/system32/msdtc.exe" -> OK

msdtc.exe 是windows 分布式服务程序。


博客园上的一个解决方法:

第一步: -------------------- win2003缺省禁用远程/网络事务,启用的步骤如下: 启用网络 DTC 访问的步骤 1. 单击“开始”,指向“控制面板”,然后单击“添加/删除程序”。 2. 单击“添加/删除 Windows 组件”。 3. 选择“应用程序服务器”,然后单击“详细信息”。 4. 选择“启用网络 DTC 访问”,然后单击“确定”。 5. 单击“下一步”。 6. 单击“完成”。 7. 停止分布式事务协调器服务,然后重新予以启动。 8. 停止参与分布式事务的任何资源管理器服务(如 Microsoft SQL Server 或 Microsoft Message Queue Server),然后重新予以启动。 -------------------------------- 第二步: -------------------------------- 设置MSDTC:控制面板->管理工具->组件服务->我的电脑->右键->属性->MSDTC->安全配置(Security Configuration)->打开Network DTC Access 同时打上 Allow Inbound ,Allow Outbound ,No Authentication Required,Enable Transaction Internet Protocol[TIP] Transaction --------------------------------- 第三步:将MSDTC程序添加入Windows防火墙 注意:两台参与分布事务的机器都需按如上操作设置。如果还有问题,则重启机器。


比我多了第一步,在我的试验中没有用到第一步。

有人说TransactionScope不支持跨域访问,在我的实验中,是可以跨域的。

关于TransactionScope有几点需要补充:

1. connection 须在TransactionScope内部打开且关闭

2. 执行sql时出现的异常要抛出到TransactionScope,以使得TransactionScope知道发生异常了,准备回滚

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-07-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档