C# RabbitMQ";“巴西卡克”;他正在停止执行死刑

C# RabbitMQ";“巴西卡克”;他正在停止执行死刑,c#,mono,rabbitmq,C#,Mono,Rabbitmq,我有RabbitMQ设置,其中代码与第二个教程100%相似。不知什么原因,我的“员工”会停止接受新信息。在找到它之后,这条线: channel.BasicAck(deliveryTag:ea.deliveryTag,多个:false) 正在停止程序执行。我发现这是因为我把一些打印的语句放在了这条线上。我想知道为什么会发生这种情况 我使用的是C#API,在Mono上运行。所有工作人员一次只处理一条消息。我确实有多个工作人员使用RabbitMQ服务器的相同登录信息。您在进行此调用时是否返回异常?它是

我有RabbitMQ设置,其中代码与第二个教程100%相似。不知什么原因,我的“员工”会停止接受新信息。在找到它之后,这条线:

channel.BasicAck(deliveryTag:ea.deliveryTag,多个:false)

正在停止程序执行。我发现这是因为我把一些打印的语句放在了这条线上。我想知道为什么会发生这种情况


我使用的是C#API,在Mono上运行。所有工作人员一次只处理一条消息。我确实有多个工作人员使用RabbitMQ服务器的相同登录信息。

您在进行此调用时是否返回异常?它是用try/catch包装的吗?不,它周围没有try/catch块。我假设如果抛出异常,它将杀死我的程序。我应该这样做吗?总是值得用try/catch来包装它,只是为了确保任何异常都可以被捕获和调试,而不是处于某种情况下,有些东西不起作用,你不知道会发生什么,我用我的代码做了更多的测试,如果我的工作需要更长的时间来处理,那么它挂在ACK消息上的可能性似乎要大得多。有点难堪。确认:每个员工是否有1个IModel?当您收到消息时,是否将消费设置为等待确认?在您向BasicAck调用IModel之前,您能否确认与RabbitMQ的连接没有中断?(由于单线程导致心跳停止或其他原因?)