【发布时间】:2020-11-20 02:11:27
【问题描述】:
我在 Asp.Net Core 应用程序中使用 MassTransit + RabbitMQ 组合。相关配置部分如下:
public IBusControl CreateBus(IServiceProvider serviceProvider)
{
var options = serviceProvider.GetService<IConfiguration>().GetOptions<RabbitMqOptions>("rabbitmq");
return Bus.Factory.CreateUsingRabbitMq(cfg =>
{
cfg.Host($"rabbitmq://{options.Host}:{options.Port}");
cfg.ReceiveEndpoint("ingest-products", ep =>
{
ep.PrefetchCount = 16;
ep.UseMessageRetry(r => r.Interval(2, 1000));
ep.Bind<CreateProducts>(x =>
{
x.RoutingKey = "marketplace";
x.ExchangeType = ExchangeType.Direct;
x.AutoDelete = false;
x.Durable = true;
});
ep.ConfigureConsumer<CreateProductsConsumer>(serviceProvider);
});
});
}
当我运行应用程序时,我得到了这个异常:
参数异常: MassTransit.RabbitMqTransport.Topology.Entities.ExchangeEntity 实体 设置与现有实体不匹配
我在这里做错了什么?将交换绑定到接收端点后,我不应该使用IServiceProvider 配置消费者吗?如果不是,那么我该如何正确配置它(好吧,我仍然希望将东西注入我的消费者)?
【问题讨论】:
标签: c# masstransit