.NET 8 - ошибка лицензии Masstransit в производстве [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 .NET 8 - ошибка лицензии Masstransit в производстве [закрыто]

Сообщение Anonymous »

Я всегда использовал Masstransit (полагаю, в течение 3–4 месяцев), и сегодня, когда я попытался развернуть свое приложение .NET 8 в Heroku, оно просто не сработало.
Проверяя журналы, я вижу следующее:

Код: Выделить всё

2026-02-02T20:00:20.977007+00:00 app[web.1]: Unhandled exception. MassTransit.ConfigurationException: The bus configuration is invalid:
2026-02-02T20:00:20.977027+00:00 app[web.1]: [Failure] License must be specified with SetLicense/SetLicenseLocation or by setting the MT_LICENSE/MT_LICENSE_PATH environment variables
2026-02-02T20:00:20.977050+00:00 app[web.1]:    at MassTransit.MassTransitExceptionExtensions.ThrowIfContainsFailure(IEnumerable`1 results, String prefix) in /_/src/MassTransit.Abstractions/Exceptions/MassTransitExceptionExtensions.cs:line 26
2026-02-02T20:00:20.977052+00:00 app[web.1]:    at MassTransit.Configuration.TransportRegistrationBusFactory`1.CreateBus[T,TConfigurator](T configurator, IBusRegistrationContext context, Action`2 configure, IEnumerable`1 specifications) in /_/src/MassTransit/DependencyInjection/Configuration/TransportRegistrationBusFactory.cs:line 50
2026-02-02T20:00:20.977053+00:00 app[web.1]:    at MassTransit.RabbitMqTransport.Configuration.RabbitMqRegistrationBusFactory.CreateBus(IBusRegistrationContext context, IEnumerable`1 specifications, String busName) in /_/src/Transports/MassTransit.RabbitMqTransport/RabbitMqTransport/Configuration/RabbitMqRegistrationBusFactory.cs:line 71
2026-02-02T20:00:20.977054+00:00 app[web.1]:    at MassTransit.Configuration.ServiceCollectionBusConfigurator.CreateBus[T](T busFactory, IServiceProvider provider) in /_/src/MassTransit/DependencyInjection/Configuration/ServiceCollectionBusConfigurator.cs:line 152
2026-02-02T20:00:20.977059+00:00 app[web.1]:    at MassTransit.Configuration.ServiceCollectionBusConfigurator.c__DisplayClass7_0`1.b__0(IServiceProvider provider) in /_/src/MassTransit/DependencyInjection/Configuration/ServiceCollectionBusConfigurator.cs:line 106
2026-02-02T20:00:20.977061+00:00 app[web.1]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
2026-02-02T20:00:20.977061+00:00 app[web.1]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
После проверки я заметил, что часть кода, вызывающая исключение:

Код: Выделить всё

public static void AddBusExt(this IServiceCollection services)
{
var rabbitMqUserName = EnvHelper.GetStrVariable("RABBITMQ_USERNAME");
var rabbitMqPassword = EnvHelper.GetStrVariable("RABBITMQ_PASSWORD");

services.AddScoped();
services.AddMassTransit(b =>
{
b.AddConsumer();

b.UsingRabbitMq((context, cfg) =>
{
cfg.Host(GetRabbitMqUri(), h =>
{
h.Username(rabbitMqUserName);
h.Password(rabbitMqPassword);
});

cfg.ReceiveEndpoint(RabbitMqQueue.TestQueue,
e => { e.ConfigureConsumer(context); });
});
});
}

#region Private functions

private static Uri GetRabbitMqUri()
{
return new Uri($"rabbitmq://{EnvHelper.GetStrVariable("RABBITMQ_HOSTNAME")}:{EnvHelper.GetStrVariable("RABBITMQ_PORT")}/");
}

#endregion
Я вызываю этот код в файле program.cs с помощью code builder.Services.AddBusExt();
Если я комментирую функцию .UsingRabbitMq и весь код внутри ServiceBus, мое приложение строится правильно. Это мой класс ServiceBus:

Код: Выделить всё

        public async Task PublishAsync(T messageEvent) where T : class
{
try
{
using var source = new CancellationTokenSource(TimeSpan.FromSeconds(10));

await publishEndpoint.Publish(messageEvent, source.Token);
}
catch
{
throw new Exception("Publish failed");
}
}
Эта лицензия для меня совершенно новая. Это настоящая причина проблемы? В моей локальной среде все работает правильно, даже с .env с сервера. Кто-нибудь знает, почему это происходит?

Подробнее здесь: https://stackoverflow.com/questions/798 ... production
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»