0

我有一个连接器(它接收来自不同连接器的消息。在接收消息时,我的连接器给出以下消息:

[Worker.11] WARN NServiceBus.Unicast.Transport.Transactional.TransactionalTransport [(null)] <(null)> - 未能为 ID=fd970068-55ad-49c0-8abc-4133b7f7fe12 的消息引发“收到传输消息”事件\2138 47 NServiceBus.Unicast.Queuing.QueueNotFoundException ---> System.Messaging.Message QueueException:无法登记事务。在 System.Messaging.MessageQueue.SendInternal(Object obj, MessageQueueTransaction internalTransaction, MessageQueueTransactionType transactionType) 在 NServiceBus.Unicast.Queuing.Msmq.MsmqMessageSender.NServiceBus.Unicast.Que uing.ISendMessages.Send(TransportMessage message, Address address) ---内部异常堆栈跟踪结束 --- 在 NServiceBus.Unicast.UnicastBus.HandleTransportMessage(IBuilder childBuilder,

奇怪的是,当我进行内部测试时,一旦它现在托管到亚马逊服务器上,它就可以正常工作了,它已经开始爆炸了。

以下是我如何配置我的 nservice 总线

NServiceBus.Configure.With(
            AllAssemblies.Except("libBL.dll").And("libCommon.dll").And("libExtra.dll")).StructureMapBuilder()
            .JsonSerializer()
            .UnicastBus()
            .DoNotAutoSubscribe()
            .TransactionTimeout(TimeSpan.FromMinutes(5));

任何帮助将非常感激。如果需要更多信息,请告诉我

谢谢

4

1 回答 1

0

在搜索代码时发现,如果传入的消息失败,那么我没有回滚整个操作开始的事务,因此 nservicebus 无法查询数据库,因为它被锁定了。在输入事务回滚的逻辑后,我的连接器就可以工作了。

于 2013-07-24T15:32:46.147 回答