使用NServiceBus时如何防止“System.Transactions.TransactionException”错误

时间:2018-05-24 11:43:16

标签: c# sql .net sql-server nservicebus

我的程序使用NServiceBus作为服务总线。 现在,当我运行程序的某个部分时,它会触发一个命令来启动一个进程。此过程涉及通过程序中的3个独立处理程序(类)从数据库(具有大量数据)查找数据。因此,在某种程度上,它们是并行发生的。由于这3个类接收并处理相同的命令,然后开始工作

搜索堆栈溢出的类似帖子,我遇到了很多建议。包括config和machine.config中的“增加超时时间”。做完这个就知道了。

post!让我意识到这可能是NServiceBus和MSDTC的一个问题。

我还将visual studio调试器附加到程序进程中,目睹了在我查询存储库类的每个点发生的异常 - 它查询数据库。

System.Transactions.TransactionException occurred
  HResult=-2146233087
  Message=The operation is not valid for the state of the transaction.
  Source=System.Transactions
  StackTrace:
       at 
System.Transactions.TransactionState.EnlistVolatile(InternalTransaction 
tx, IEnlistmentNotification enlistmentNotification, EnlistmentOptions 
enlistmentOptions, Transaction atomicTransaction)
  InnerException: 

我很想在任何地方试试。但那是我变得绝望。而且,我忽略了很多数据。

请,任何想法? 所有回复都将受到赞赏。

0 个答案:

没有答案