Я использую комбинацию MassTransit + RabbitMQ в Asp. Net Базовом приложении. Соответствующая часть конфигурации ниже:
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);
});
});
}
Когда я запускаю приложение, я получаю следующее исключение:
ArgumentException: MassTransit.RabbitMqTransport.Topology.Entities.ExchangeEntity entity настройки не соответствуют существующей сущности
Что я здесь не так делаю? Разве я не должен настраивать потребителя с IServiceProvider
после привязки обмена к конечной точке получения? Если нет, то как мне правильно его настроить (ну, я все еще хочу, чтобы материал впрыскивался в моих потребителей)?