我的程序使用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:
我很想在任何地方试试。但那是我变得绝望。而且,我忽略了很多数据。
请,任何想法? 所有回复都将受到赞赏。