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能够相互通讯(即建立信任连接)即可,实际应用中,公司企业的网络部署情况都会对其产生影响