#c# #asp.net-core #masstransit
Вопрос:
Добрый день, я настраиваю Masstransit для .net6 приложение net core Добавило пакеты nuget Masstransit:
lt;PackageReference Include="MassTransit.Extensions.DependencyInjection" Version="7.2.4" /gt; lt;PackageReference Include="MassTransit.RabbitMQ" Version="7.2.4" /gt;
Я регистрирую его при запуске, и в нем говорится, что нет такого метода, как AddMasstransitHostedService Я попытался опубликовать сообщение без него, но обмен не создается (и по какой-то причине отладка также показывает фактический адрес с портом 0)
Был бы очень благодарен за помощь, Поискал все, что связано с Интернетом, к сожалению, исправлений пока нет
Вот как я регистрирую Масстрансит:
services.AddMassTransit(mt =gt; { mt.UsingRabbitMq((context, cfg) =gt; { cfg.Host(new Uri(RabbitMqOptions.RabbitMqUri), h =gt; { h.Username(RabbitMqOptions.UserName); h.Password(RabbitMqOptions.Password); }); cfg.AutoStart = true; cfg.Publishlt;IServerNotificationMessagegt;(e =gt; e.ExchangeType = RabbitMQ.Client.ExchangeType.Direct); }); }); services.AddMassTransitHostedService();//lt;-----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.Publishlt;SomeMessagegt;(new { ... ... // fields go here }, cancellationToken);
Комментарии:
1. Пожалуйста, укажите, какие пакеты nuget и какую версию MassTransit вы установили.
2. Расширения. Зависимость» Версия=»7.2.4″ /gt; gt; RabbitMQ» Версия=»7.2.4″ /gt; И моя целевая платформа-net6
3. Спасибо, как уже упоминалось ниже, вы должны добавить MassTransit. AspNetCore.
Ответ №1:
Вам нужно добавить MassTransit.AspNetCore
ссылку на пакет.
Комментарии:
1. Спасибо, что добавили пакет, теперь он видит AddMasstransitHostedService, Может быть, вы знаете, почему при публикации не создается обмен?
2. Просмотрите журналы, но они должны быть созданы.