簡體   English   中英

公共交通沒有創造交換

[英]Masstransit not creating exchange

美好的一天,我正在解決沒有自動創建交換的問題

我已經使用此類 uri 選項在 net6 網絡核心應用程序中注冊了 Masstransit(兩者都嘗試過):

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

注冊看起來像這樣:

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();

調試發布代碼顯示實際使用的端口為 0,總線控制為 null 且未啟動看打印屏幕

如何讓巴士啟動? (據我了解 cfg.Host 返回 void,而不是總線控制,因此它無法顯式啟動,已指定自動啟動選項,但仍處於關閉狀態)

先感謝您

配置 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();

日志應該顯示總線正在啟動,如果沒有,那么托管服務沒有啟動。 這是 ASP.NET 項目,還是使用 .NET 通用主機的項目?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM