NServiceBus无法接收消息

时间:2016-11-01 19:06:45

标签: c# nservicebus nservicebus5

我遵循NServiceBus入门指南(第5版),我收到以下错误。

当客户端向服务器发送命令时,服务器有接收消息的问题。代码没问题,因为另一台机器上完全相同的代码正在运行。所以我的机器上缺少一些东西。

我按照教程中提到的那样运行了这个命令:

  

DISM.exe / Online / NoRestart / English / Enable-Feature / all / FeatureName:MSMQ-Server

但它还没有用。

  

2016-11-01 19:50:47.316错误   ServiceBus.Transports.Msmq.MsmqDequeueStrategy接收消息时出错。       System.Transactions.TransactionAbortedException:事务已中止。 ---> System.Transactions.TransactionManagerCommunicationException:与底层事务管理器的通信失败。 ---> System.Runtime.InteropServices.COMException:事务管理器不可用。 (HRESULT异常:0x8004D01B)       在System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy(String nodeName,Guid resourceManagerIdentifier,IntPtr managedIdentifier,Boolean& nodeName Matches,UInt32& whereaboutsSize,CoTaskMemHandle& whereaboutsBuffer,IResourceManagerShim& resourceManagerShim)       在System.Transactions.Oletx.DtcTransactionManager.Initialize()       ---内部异常堆栈跟踪结束---       at system.Transactions.Oletx.OletxTransactionManager.ProxyException(COMExcept   离子comException)       在System.Transactions.Oletx.DtcTransactionManager.Initialize()       在System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory()       在System.Transactions.Oletx.OletxTransactionManager.CreateTransaction(Transa   ctionOptions属性)      在System.Transactions.TransactionStatePromoted.EnterState(InternalTransactio   n tx)      ---内部异常堆栈跟踪结束---      在System.Transactions.TransactionStateAborted.CheckForFinishedTransaction(In   ternalTransaction tx)      在System.Transactions.EnlistableStates.Promote(InternalTransaction tx)      在System.Transactions.Transaction.Promote()      在System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transacti   交易)      在System.Transactions.TransactionInterop.GetDtcTransaction(Transaction trans   行动)      在System.Messaging.MessageQueue.StaleSafeReceiveMessage(UInt32超时,Int3   2个动作,MQPROPS属性,NativeOverlapped *重叠,ReceiveCallback接收   iveCallback,CursorHandle cursorHandle,IntPtr事务)      在System.Messaging.MessageQueue.ReceiveCurrent(TimeSpan timeout,Int32 actio   n,CursorHandle游标,MessagePropertyFilter过滤器,MessageQueueTransaction中   ternalTransaction,MessageQueueTransactionType transactionType)      在System.Messaging.MessageQueue.Receive(TimeSpan超时,MessageQueueTransa   ctionType transactionType)      位于C:\ Bu的NServiceBus.Transports.Msmq.MsmqDequeueStrategy.b__12_1()   ildAgent \工作\ 3206e2123f54fce4的\ src \ NServiceBus.Core \交通服务\ MSMQ \ MsmqDequeueS   trategy.cs:第248行      在NServiceBus.Transports.Msmq.MsmqDequeueStrategy.TryReceiveMessage(Func`1 r   eceive,Message&在C:\ BuildAgent \ work \ 3206e2123f54fce4 \ src \ NServiceBus中的消息)   .Core \ Transports \ Msmq \ MsmqDequeueStrategy.cs:第332行

1 个答案:

答案 0 :(得分:2)

对我来说,问题是服务分布式事务处理协调器已关闭。打开它后,一切都按预期工作。