我想知道是否有一种方法可以明确声明应用于给定应用程序的错误队列的名称,而不是将未处理的异常放入中,而不是让错误最终出现在此一个中EasyNetQ_Default_Error_Queue 吗?

我可以看到如何指定常规消息队列名称,但是还没有找到有关错误队列名称的任何信息。

最佳答案

是的,您可以通过重写IConventions对象上的委托(delegate)来自定义命名约定(或仅创建自己的实现并将其注册为依赖项):

https://github.com/EasyNetQ/EasyNetQ/blob/master/Source/EasyNetQ.Tests/ConventionsTests.cs

这可能应该工作:

var bus = RabbitHutch.CreateBus("host=localhost");
bus.Advanced.Container.Resolve<IConventions>().ErrorExchangeNamingConvention = info => "MyExchangeNaming";
bus.Advanced.Container.Resolve<IConventions>().ErrorQueueNamingConvention = () => "MyErrorQueueNaming";

10-02 22:18