Transactioscope有关问题
Transactioscope问题
Using scope As TransactionScope = New TransactionScope
Using cn1 As SqlConnection = New SqlConnection( "Data Source=GSH;Initial Catalog=JME2008;Integrated Security=True; ")
cn1.Open()
End Using
Using cn2 As SqlConnection = New SqlConnection( "Data Source=GSH;Initial Catalog=JME2008;Integrated Security=True; ")
cn2.Open()
End Using
End Using
在上面的代码中,cn1.open的时候没有问题,但是到了cn2.open时就出错了,错误信息是:与基础事务管理器的通信失败。
------解决方案--------------------
1,首先保证MSDTC服务可以用
(程序运行机器和数据库服务器都要设置)
设置:管理工具--〉组件服务--〉组件服务--〉计算机--〉我的电脑--〉右键菜单--〉属性--〉MSDTC--〉安全配置
勾选 网络DTC访问,同时勾选 允许入站,允许出站,不要求验证,启用事务Internet协议(TIP)事务
2,几台机器之间能互相建立访问连接(可信任连接),这点容易忽略!
Using scope As TransactionScope = New TransactionScope
Using cn1 As SqlConnection = New SqlConnection( "Data Source=GSH;Initial Catalog=JME2008;Integrated Security=True; ")
cn1.Open()
End Using
Using cn2 As SqlConnection = New SqlConnection( "Data Source=GSH;Initial Catalog=JME2008;Integrated Security=True; ")
cn2.Open()
End Using
End Using
在上面的代码中,cn1.open的时候没有问题,但是到了cn2.open时就出错了,错误信息是:与基础事务管理器的通信失败。
------解决方案--------------------
1,首先保证MSDTC服务可以用
(程序运行机器和数据库服务器都要设置)
设置:管理工具--〉组件服务--〉组件服务--〉计算机--〉我的电脑--〉右键菜单--〉属性--〉MSDTC--〉安全配置
勾选 网络DTC访问,同时勾选 允许入站,允许出站,不要求验证,启用事务Internet协议(TIP)事务
2,几台机器之间能互相建立访问连接(可信任连接),这点容易忽略!