【问题标题】:NServiceBus Starts, Runs Briefly, Then CrashesNServiceBus 启动,短暂运行,然后崩溃
【发布时间】:2025-12-26 09:55:07
【问题描述】:

我有一个在使用 NServiceBus 的 Azure VM 上运行的 Windows 服务。当我启动服务时,它会启动,运行一分钟左右然后停止。我能找到的唯一错误日志是在事件查看器中。

Application: NServiceBus.Host.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Messaging.MessageQueueException
   at System.Messaging.MessageQueue+MQCacheableInfo.get_WriteHandle()
   at System.Messaging.MessageQueue.StaleSafeSendMessage(MQPROPS, IntPtr)
   at System.Messaging.MessageQueue.SendInternal(System.Object, System.Messaging.MessageQueueTransaction, System.Messaging.MessageQueueTransactionType)
   at NServiceBus.Transports.Msmq.MsmqMessageSender.Send(NServiceBus.TransportMessage, NServiceBus.Unicast.SendOptions)

Exception Info: System.Exception
   at NServiceBus.Transports.Msmq.MsmqMessageSender.ThrowFailedToSendException(NServiceBus.Address, System.Exception)
   at NServiceBus.Transports.Msmq.MsmqMessageSender.Send(NServiceBus.TransportMessage, NServiceBus.Unicast.SendOptions)
   at NServiceBus.Unicast.Subscriptions.MessageDrivenSubscriptions.SubscriptionManager.SendSubscribeMessageWithRetries(NServiceBus.Address, NServiceBus.TransportMessage, System.String, Int32)
   at NServiceBus.Unicast.Subscriptions.MessageDrivenSubscriptions.SubscriptionManager+<>c__DisplayClass12_0.<Subscribe>b__0(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()

我正在阅读可能关于同一问题的旧帖子,人们说 NServiceBus 可能正在尝试记录错误,但记录器本身失败导致此问题。有没有人以前见过这个或对此有任何见解?谢谢。

【问题讨论】:

    标签: azure nservicebus event-viewer


    【解决方案1】:

    在同事的帮助下,我们发现了这个问题。有一个未填充的消息队列变量,并且 NServiceBus 的消息队列名称格式不兼容,导致错误。

    【讨论】: