Aspire — неработоспособный контейнер RabbitMQC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Aspire — неработоспособный контейнер RabbitMQ

Сообщение Anonymous »

У меня есть предупреждение, от которого я хотел бы избавиться в своем контейнере RabbitMQ.
Я не понимаю, почему оно всегда находится в состоянии «Работает (неработоспособно)».
Мне нужно проверить что этот контейнер исправен, чтобы запустить мои 2 службы API, в противном случае они не запускаются.
Снимок панели управления Aspire
Если у кого-то есть совет, как это исправить, было бы круто :)
Вот версии:
  • Aspire.Host: v9.0.0
  • RabbitMQ.Client: v7.0.0
Вот журнал нездоровой причины:
System.TypeLoadException : Не удалось загрузить тип «RabbitMQ.Client.IModel» из сборки «RabbitMQ.Client, Version=7.0.0.0, Culture=neutral, PublicKeyToken=89e7d7c5feba84ce».
at HealthChecks.RabbitMQ.RabbitMQHealthCheck.CheckHealthAsync(HealthCheckContext) контекст, CancellationToken cancelToken)
в Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService.RunCheckAsync (регистрация HealthCheckRegistration, CancellationToken cancelToken)
Вот код моего Program.cs проекта Aspire Host:

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

var builder = DistributedApplication.CreateBuilder(args);

// Configure SQL Server with existing instance
var sqlServer = builder
.AddSqlServer("coffee-sqlserver")
.WithImageTag("latest")
.WithLifetime(ContainerLifetime.Persistent)
.WithDataVolume()
.WithHttpEndpoint(port: 7000, targetPort: 1433) // Assuming 1433 is the default SQL Server port
.AddDatabase("coffee-sqldb"); // Use existing database

// Configure PostgreSQL with existing instance
var postgres = builder
.AddPostgres("coffee-order-postgresql")
.WithImageTag("latest")
.WithLifetime(ContainerLifetime.Persistent)
.WithDataVolume()
.WithHttpEndpoint(port: 7001, targetPort: 5432)
.WithPgAdmin(); // Assuming 5432 is the default PostGreSQL port

// Connect to existing PostGreSQL databases
var postgresAdminDb = postgres.AddDatabase("coffee-admin-postgresdb");
var postgresDb = postgres.AddDatabase("coffee-order-postgresdb");

var migration = builder.AddProject
("migration")
.WithReference(sqlServer)
.WithReference(postgresDb)
.WithReference(postgresAdminDb)
.WaitFor(postgres)
.WaitFor(postgresAdminDb)
.WaitFor(postgresDb);

var rabbitUser = builder.AddParameter("username", true);
var rabbitPass = builder.AddParameter("password", true);

// Configure RabbitMQ with existing instance
var rabbitBroker = builder
.AddRabbitMQ("coffee-rabbitmq", rabbitUser, rabbitPass)
.WithImageTag("4.0.5")
.WithLifetime(ContainerLifetime.Persistent)
.WithHttpEndpoint(port: 7002, targetPort: 15672)
.WithHttpsEndpoint(port: 8002, targetPort: 15672)
//.WithEnvironment("RABBITMQ_DEFAULT_USER", "admin")
//.WithEnvironment("RABBITMQ_DEFAULT_PASS", "password")
.WithManagementPlugin();

// Configure Redis with existing instance
var cache = builder
.AddRedis("coffee-redis")
.WithImageTag("latest")
.WithRedisInsight()
.WithDataVolume();

// Configure the Admin Service
var adminService = builder.AddProject("adminservice")
.WithHttpEndpoint(port:7004)
.WithHttpsEndpoint(port: 8000)
.WithReference(cache)
.WithReference(migration)
.WithReference(postgresAdminDb)
.WithReference(rabbitBroker)
.WaitFor(migration)
.WaitFor(rabbitBroker);

// Configure the Order Service
var orderService = builder.AddProject("orderservice")
.WithHttpEndpoint(port:7003)
.WithHttpsEndpoint(port: 8001)
.WithReference(cache)
.WithReference(postgresDb)
.WithReference(sqlServer)
.WithReference(migration)
.WithReference(rabbitBroker)
.WaitFor(migration)
.WaitFor(rabbitBroker);

// Configure the Angular Frontend
builder
.AddNpmApp("frontend-angular", "../CoffeeShop.FrontEnd")
.WithHttpEndpoint(port: 7005, env: "PORT")
.WithReference(adminService)
.WithReference(orderService)
.WaitFor(adminService)
.WaitFor(orderService)
.WithExternalHttpEndpoints()
.PublishAsDockerFile();  // This publishes the frontend as a Dockerfile

// Build and run the application
await builder.Build().RunAsync();
edit : кажется, что существует метод "HealthCheck", но ему нужна строка, которая в моем случае я дону Не знаю, что пройти
Спасибо!
p.s < /em>: мне нужно сохранить rabbitmq.client в версии 7.0.0, но я попытался понизить версию 6.8.x, и это не сработает, может быть Я должен использовать MassTransit?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -container
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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