Сообщество:
Я пытаюсь выяснить, как создать одно соединение AMQP, которое соответствует жизненному циклу моего приложения ASP.NET в ASP.NET с использованием .NET Core 2.1. После исследования я нашел много ссылок на использование одного соединения AMQP для всего приложения, поскольку они дорогостоящие и медленные в создании, и я шел по пути создания соединения с использованием DI, но, похоже, мой подход некорректен, я не могу определить, какой интерфейс мне нужно добавить как синглтон ...
public void ConfigureServices(IServiceCollection services)
{
var sqlConnectionStringBuilder = new SqlConnectionStringBuilder(Configuration.GetConnectionString("DefaultConnection"));
var envSQL = Environment.GetEnvironmentVariable("ASPNETCORE_SQL_SERVER");
if (envSQL != null)
sqlConnectionStringBuilder.DataSource = envSQL;
services.AddSingleton<IMessageBusService, MessageBusService>();
services.AddSingleton<EasyNetQ.IAdvancedBus, RabbitAdvancedBus>();
services.AddSingleton<EasyNetQ.IConnectionFactory, ConnectionFactoryWrapper>();
services.AddMvc();
}
Добавление указанных выше интерфейсов работает, но я получаю сообщение об ошибке, что служба ConnectionConfiguration не может быть обнаружена. Это правильное направление или есть более правильный способ создания единого приложения после подключения EasyNetQ в ядре ASP.NET?