Ian*_*ose 3 sql-server ado.net transactionscope distributed-transactions linq-to-sql
我们在一台机器上遇到问题,并显示错误消息:
"服务器XXX上的MSDTC不可用."
代码使用TransactionScope来包装一些LingToSql数据库代码; 交易中还有一些原始的Ado.net.
由于只访问了一个sql数据库(2005),为什么要使用分布式事务呢?
(我不想知道如何启用MSDTC,因为代码需要在服务器上使用其当前设置)
当您的事务使用多个数据库连接时,几乎总会发生这种情况.所以,假设您正在更新两个表.您可以使用一个连接更新第一个表,但使用不同的第二个连接更新第二个表.这将导致事务升级到MSDTC,即使使用TransactionScope对象也是如此.
我们解决这个问题的方法是在执行事务时,我们为所有写操作使用单个数据库上下文对象.这消除了升级.由于这样做,我们从未出现过MSDTC消息.
兰迪
| 归档时间: |
|
| 查看次数: |
1709 次 |
| 最近记录: |