日期:2014-05-19  浏览次数:20879 次

c#的事务问题,大家一起来顶
c#中,有一个system.Transaction类,负责事务处理。

不过他要求客户端与sqlserver服务器在同一子网,同一工作组当,但现在的问题是,如果不在同一子网或工作组,就报连接事务程序出错,还有防火墙有时也把它挡住了,我该怎么办?
用什么替代?

------解决方案--------------------
还不太懂跨网段的连接,不过用存储过程的话,只要能连接,应该就没问题吧
------解决方案--------------------
system.Transaction不管客户端与sqlserver服务器是不是在在同一子网,同一工作组当中,关键是能连接上数据库,这是lz要解决的问题
------解决方案--------------------
你说的是用TransactionScope类吧 ,它是通过msdtc来工作的,首先要调通和服务器间RPC的通信,具体方法如下:
1、检查MSDTC服务是否开启,
如果没有该服务,则-> 控制面板-> 添加删除程序-> 增加删除组件-> 应用程序服务-> 选择Enable network DTC access安装

2.转至 "组件服务管理工具 "。

3.浏览至 "启动管理工具 "。

4.选择 "组件服务 "。

a.展开 "组件服务 "树,然后展开 "我的电脑 "。

b.右键单击 "我的电脑 ",然后选择 "属性 "。

C.在 MSDTC 选项卡中,确保选中了下列选项:
网络 DTC 访问
网络管理
网络事务
XA 事务
另外, "DTC 登录帐户 "一定要设置为 "NT Authority\NetworkService "。

5.单击 "确定 "。这样将会提示您 "MS DTC 将会停止并重新启动。
6.单击 "确定 "关闭 "我的电脑 "属性窗口。

最后要保证两台机子能购通过ping hostName


------解决方案--------------------
这个东西与组没有直接的关系,只要确保计算机之间的RPC能够相互通讯(即建立信任连接)即可,实际应用中,公司企业的网络部署情况都会对其产生影响