¿Por qué tengo el siguiente error (MassTransit)?
El error es:
ConfigurationException: Ya se agregó un punto de recepción con la misma clave: Events
Tengo appsettings.Development.json con
"EventsBusOptions": {
"HostUri": "rabbimq://rabbitmq.test.com/gate",
"UserName": "xxx",
"Password": "xxxxxx",
"QueueName": "events", // <<< si cambio el nombre de la cola a cualquier otra cadena, por ejemplo "events1", NO hay error
"PrefetchCount": 16,
"UseConcurrencyLimit": 15
}
y Startup.cs (con configuración MultiBus)
services.AddMassTransit<ieventsbus>(x =>
{
x.UsingRabbitMq((context, cfg) =>
{
var _options = context.GetRequiredService<><eventsbusoptions>>().Value;
cfg.Host(new Uri(_options.HostUri), h =>
{
h.Username(_options.UserName);
h.Password(_options.Password);
});
cfg.ReceiveEndpoint(_options.QueueName, ep =>
{
ep.Consumer<eventsconsumer>(context);
ep.PrefetchCount = _options.PrefetchCount ?? 15;
ep.UseConcurrencyLimit(_options.UseConcurrencyLimit ?? 16);
});
cfg.ConfigureEndpoints(context);
});
x.AddConsumer<eventsconsumer>();
});
¿Por qué obtengo el error cuando uso “QueueName”: “events”?
davy.ai
El error está ocurriendo porque ya hay un punto final de recepción con la misma clave “events” agregada. Esto significa que MassTransit está intentando agregar un punto final de recepción con el mismo nombre que uno existente, lo cual no está permitido.
Para resolver este error, puedes cambiar el nombre del punto final de recepción existente o el nombre del nuevo que estás intentando añadir. En este caso, cambiar el nombre de la propiedad “QueueName” en appsettings.Development.json a una cadena diferente, como “events1”, evitaría el error. Alternativamente, podrías cambiar el nombre del punto final de recepción existente en la configuración de MassTransit a algo distinto de “events”.