我们使用 MassTransit 生成消息并写入 Azure 服务总线,并且我们有一个消费者,它是使用相同的包编写的来消费消息,但无法消费消息。
消费者在本地计算机中也没有受到影响,并且 Azure 服务总线或日志中没有理由显示任何类型的信息或错误
我们尝试过
我们已经配置了消费者并正确创建了消费者。
我们在Program.cs中的ConfigureServices中编写了以下部分代码来添加服务并启动服务总线
builder.Services.AddMassTransit(x =>
{
x.AddConsumer<CrmCatalogCreatedEventConsumer>();
x.UsingAzureServiceBus((context, cfg) =>
{
cfg.Host(massTransitOptions.AzureServiceBusConnectionString);
cfg.UseConsumeFilter(typeof(LogConsumeFilter<>), context);
ConfigureMessageType<CrmCatalogCreatedEventConsumer, ICrmCatalogCreatedEvent>(context, cfg);
});
});
我们编写了一个单独的方法来配置消费者,如下所示
private static void ConfigureMessageType<TConsumer, TMessageType>(IBusRegistrationContext context, IServiceBusBusFactoryConfigurator busCfg)
where TConsumer : class, IConsumer<TMessageType>
where TMessageType : class
{
var topicName = GetTopicName<TMessageType>();
busCfg.Message<TMessageType>(cfg =>
{
cfg.SetEntityName(topicName);
});
busCfg.SubscriptionEndpoint("_subscriptionName", topicName, cfg =>
{
cfg.ConfigureConsumer<TConsumer>(context);
});
}
我们几乎没有其他主题的其他消费者,这些主题运行良好,而这个则不然
问题已解决。 问题是因为消费者使用了错误的命名空间