![](/img/trans.png)
[英]How can I stop MassTransit creating exchange bindings for error messages
[英]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.