es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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”?

Tags:  

Answer

  1. Avatar for 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”.

Comments are closed.