【发布时间】:2016-12-01 11:17:24
【问题描述】:
在我的应用程序中,我正在尝试根据您使用下一个代码的建议在“Rebus”主题交换中订阅“MyQueue”队列,该队列已绑定到它:
async void InitializeBus()
{
var busConfigurer = Configure.With(new CastleWindsorContainerAdapter(_container))
.Logging(l => l.Log4Net())
.Transport(t => t.UseRabbitMq(_connectionString, "MyQueue")
.Declarations(false, false, false)
.ExchangeNames("RebusDirect", "Rebus")
.Prefetch(5))
.Options(o => {
o.SimpleRetryStrategy(_errorQueue);
if (_enableLegacyCompatibility)
{
o.EnableLegacyCompatibility();
}
})
.Serialization(s => s.Decorate(c => new XmlMessageSerializer()));
var bus = busConfigurer.Start();`
await bus.Advanced.Topics.Subscribe("MyQueue");
}
结果我有一个例外
AMQP 操作被中断:AMQP 关闭原因,由 对等体,code=404,text="NOT_FOUND - vhost '/' 中没有队列 'MyQueue'", classId=50, methodId=20, cause=
虽然队列存在。
如果我删除 .Declarations(false, false, false) 并等待 bus.Advanced.Topics.Subscribe("MyQueue");它将在 RebusDirect 交换中的 rabbit 中创建新的 MyQueue 并开始收听它。 rabbit的连接字符串是正确的。
问题可能出在哪里?配置不当还是订阅方式不正确?
提前致谢。
【问题讨论】: