SqlBulkCopy在设置TransactionScopeRequired的WCF服务中使用时超时

时间:2014-01-23 21:02:37

标签: c# wcf msmq transactionscope sqlbulkcopy

情况: 使用TransactionScopeRequired OperationBehaviour的WCF服务。 WCF服务运行一个使用SqlBulkCopy向数据库插入许多行的进程。

在没有TransactionScopeRequired行为的情况下使用时,SqlBulkCopy会插入没有问题的记录,但是当此行为设置为true时,甚至不能插入少量记录。

更多信息 - WCF服务使用MSMQ端点。

1 个答案:

答案 0 :(得分:0)

好的..我发布以上内容已经很晚了.. :)

进一步分析后(我很惭愧写这个......!)问题是由于我的服务实现了使用任务处理库 - 即我有多个进程使得DB调用包含在TransactionScope中 - 对于例子 -

- 第一个进程对DB执行操作。此操作会将事务附加到transactionscopes事务并导致数据库锁定。

- 然后生成第二个进程并尝试写入同一个表 - 它不能,因为事务不是原始事务范围的一部分。

解决方案 - 需要进行一些重新设计才能提供更智能的交易管理!