Masstransit未创建交换



晚安我正在解决交换不是自动创建的问题

我已经在net6 net core应用程序中使用这样的uri操作注册了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,而不是buscontrol,因此它不能显式启动,已经指定了自动启动选项,尽管它仍然关闭(

提前感谢

配置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通用主机的项目?

最新更新