简体   繁体   English

公共交通没有创造交换

[英]Masstransit not creating exchange

Good day I'm solving the problem that exchange is not being automatically created美好的一天,我正在解决没有自动创建交换的问题

I have registered Masstransit in net6 net core application using such uri opions (have tried both):我已经使用此类 uri 选项在 net6 网络核心应用程序中注册了 Masstransit(两者都尝试过):

rabbitmq://myurl
rabbitmq://myurl:5672

Registration looks like this:注册看起来像这样:

services.AddMassTransit(mt =>
            {
                mt.UsingRabbitMq((context, cfg) =>
                {
                    cfg.Host(new Uri(
                        RabbitMqOptions.RabbitMqUri),
                        RabbitMqOptions.VHost,
                        credentials =>
                        {
                            credentials.Username(RabbitMqOptions.UserName);
                            credentials.Password(RabbitMqOptions.Password);
                        });

                    cfg.AutoStart = true;

                    cfg.Publish<IServerNotificationMessage>(e => e.ExchangeType = RabbitMQ.Client.ExchangeType.Direct);
                });
            });
            services.AddMassTransitHostedService();

Debugging publishing code shows that actual port used is 0 and bus control is null and not started see the print screen调试发布代码显示实际使用的端口为 0,总线控制为 null 且未启动看打印屏幕

How can I make the bus start?如何让巴士启动? (as I understand cfg.Host returns void, rather than buscontrol, so that it cannot be explicitly started, have specified autostart option, though its still down) (据我了解 cfg.Host 返回 void,而不是总线控制,因此它无法显式启动,已指定自动启动选项,但仍处于关闭状态)

Thank you in advance先感谢您

A URI is not required to configure MassTransit, you might just simplify your configuration as shown below.配置 MassTransit 不需要 URI,您可以简化配置,如下所示。

services.AddMassTransit(mt =>
{
    mt.UsingRabbitMq((context, cfg) =>
    {
        cfg.Host(RabbitMqOptions.Host,
            RabbitMqOptions.Port,
            RabbitMqOptions.VHost,
            h =>
            {
                h.Username(RabbitMqOptions.UserName);
                h.Password(RabbitMqOptions.Password);
            });

        cfg.AutoStart = true;
        cfg.Publish<IServerNotificationMessage>(e => e.ExchangeType = RabbitMQ.Client.ExchangeType.Direct);
    });
});
services.AddMassTransitHostedService();

The logs should show the bus starting, if they don't, then the hosted service is not being started.日志应该显示总线正在启动,如果没有,那么托管服务没有启动。 Is this an ASP.NET project, or a project using the .NET Generic Host?这是 ASP.NET 项目,还是使用 .NET 通用主机的项目?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM