【发布时间】:2023-03-28 23:23:01
【问题描述】:
作为 MassTransit 和 RabbitMQ 的新用户,我目前正在尝试让我的 ASP.NET 核心服务与 MassTransit 一起使用。
使用此documentation 部分来配置 MassTransit 和 ASP.NET Core 我无法使其正常工作。
目前(部分)Startup.cs 看起来像
services.AddMassTransit(x =>
{
x.AddConsumer<MailConsumer>();
x.AddConsumer<MailFailedConsumer>();
x.AddBus(provider => ConfigureBus(provider, rabbitMqConfigurations));
});
private IBusControl ConfigureBus(
IServiceProvider provider,
RabbitMqConfigSection rabbitMqConfigurations) => Bus.Factory.CreateUsingRabbitMq(
cfg =>
{
var host = cfg.Host(
rabbitMqConfigurations.Host,
"/",
hst =>
{
hst.Username(rabbitMqConfigurations.Username);
hst.Password(rabbitMqConfigurations.Password);
});
cfg.ReceiveEndpoint(host, $"{typeof(MailSent).Namespace}.{typeof(MailSent).Name}", endpoint =>
{
endpoint.Consumer<MailConsumer>(provider);
});
cfg.ReceiveEndpoint(host, $"{typeof(MailSentFailed).Namespace}.{typeof(MailSentFailed).Name}", endpoint =>
{
endpoint.Consumer<MailFailedConsumer>(provider);
});
});
交换是在 RabbitMQ 启动时自动创建的,但没有队列绑定到我期望的交换。
在调用我的 API 端点后,我可以看到交换中的活动,但当然消费者什么也不做,因为没有队列。
我缺少什么(明显的)部分?
【问题讨论】:
-
是的,MT 托管服务没有注册。你能把你的 repo 放到 GitHub 上吗?我可以快速浏览一下。
标签: c# asp.net rabbitmq masstransit