|
| 首页 → 程序开发 → .NET教程 |
| 阅读文章 |
经验:使用.net 2.0中的TransactionScope碰到的问题
经验:使用.net 2.0中的TransactionScope碰到的问题 概述:不能在同一个TransactionScope中打开多个连接对象 TransactionScope真的是很方便的,具体的使用也很简单,MSDN上有详细描述。不过我在使用过程中发现了一个问题,那就是无法在同一个TransactionScope中打开多个连接对象。示例代码如下,示例中是连接到同一实例的同一数据库,但连接到不同实例的不同数据库也是同样的结果。 具体原因还需具体分析,我碰到的情况不一定代表就是正确的情况,还请大家批评。 [Test] public void TestTransactionScope() { using (TransactionScope ts = new TransactionScope()) { string cnstr = @"Data Source=cs1\sqlexpress;Database=fugao_dev;User ID=sa;Password=123;"; SqlConnection cn1 = new SqlConnection(cnstr); cn1.Open(); using (TransactionScope ts2 = new TransactionScope()) { SqlConnection cn2 = new SqlConnection(cnstr); cn2.Open(); } } } [Test] public void TestTransactionScopeA() { using (TransactionScope ts = new TransactionScope()) { string cnstr = @"Data Source=cs1\sqlexpress;Database=fugao_dev;User ID=sa;Password=123;"; SqlConnection cn1 = new SqlConnection(cnstr); cn1.Open(); SqlConnection cn2 = new SqlConnection(cnstr); cn2.Open(); } } 以上测试都抛出了异常,并且运行时间很长,象死机一下 System.Transactions.TransactionManagerCommunicationException : 与基础事务管理器的通信失败。 ----> System.Runtime.InteropServices.COMException : 对 COM 组件的调用返回了错误 HRESULT E_FAIL。
|
| 相关文章 |
| 发表评论 |
BK网络学院主要内容:平面设计教程,网站开发在线教程,网页制作教程,服务器教程,网络编程,数据库教程等。产业部:沪ICP备05019380号 陇ICP备05004709号 公安局:GR6201030003 Copyright © BK设计 Powered by BK网络学院 |