找不到 AddMasstransitHostedService

AddMasstransitHostedService cannot be found

美好的一天 我正在为 .net6 网络核心应用程序配置 Masstransit 已添加 Masstransit nuget 包:

<PackageReference Include="MassTransit.Extensions.DependencyInjection" Version="7.2.4" />
<PackageReference Include="MassTransit.RabbitMQ" Version="7.2.4" />

正在启动中注册它,它说没有像 AddMasstransitHostedService 这样的方法 我试过在没有它的情况下发布消息,但是没有创建交换(并且出于某种原因,调试还显示端口 0 的实际地址)

非常感谢您的帮助 已经在互联网上搜索了所有相关内容,不幸的是还没有修复

这是我注册地铁的方式:

services.AddMassTransit(mt =>
{
    mt.UsingRabbitMq((context, cfg) =>
    {
        cfg.Host(new Uri(RabbitMqOptions.RabbitMqUri), h =>
        {
            h.Username(RabbitMqOptions.UserName);
            h.Password(RabbitMqOptions.Password);
        });
        
        cfg.AutoStart = true;

        cfg.Publish<IServerNotificationMessage>(e => e.ExchangeType = RabbitMQ.Client.ExchangeType.Direct);
    });
});
services.AddMassTransitHostedService();//<-----this one hints: IServiceCollection doesnt contain a definition for AddMassTransitHostedService...

这是我尝试发布消息的方式:

public class SomeController : ControllerBase
{
    protected readonly IBus _bus;

    public SomeController(IBus bus)
    {
        _bus = bus;
    }

    [HttpGet("TestPublish")]
    public void TestPublish(CancellationToken cancellationToken)
    {
        _bus.Publish<SomeMessage>(new
        {
            ...
            ... // fields go here
        }, cancellationToken);

您需要添加 MassTransit.AspNetCore 包参考。

请注意,对于 MassTransit V8 或更高版本,不再需要此包,不应引用。