Я не понимаю, почему оно всегда находится в состоянии «Работает (неработоспособно)».
Мне нужно проверить что этот контейнер исправен, чтобы запустить мои 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();
Спасибо!
p.s < /em>: мне нужно сохранить rabbitmq.client в версии 7.0.0, но я попытался понизить версию 6.8.x, и это не сработает, может быть Я должен использовать MassTransit?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -container