首页 > 解决方案 > 在 AWS ECS(Fargate)和本地(.NET Core 应用程序)上看到不同的 docker 容器行为

问题描述

更新:这个问题与在 ECS / docker / linux 上运行无关,而是 .NET 服务验证,其中环境是“开发”,而其他测试环境使用另一个环境名称。一篇有用的文章是:

https://andrewlock.net/new-in-asp-net-core-3-service-provider-validation/


在 AWS ECS 上,我看到任务停止,并且日志中显示一些 .NET 核心应用程序的 DI 注册失败。

虽然缺少 DI 注册失败是正确的,但出乎意料的是应用程序在 AWS ECS (Fargate) 下的行为不同。这些问题不会阻止 docker 容器(和应用程序)在本地从相同的映像和环境变量运行时启动。从我的 IDE 运行应用程序也可以正常工作。丢失的 DI 注册将自身显示为运行时错误。我已确认在运行健康检查端点时不存在这些运行时问题。

但是,在 ECS (Fargate) 下,我在服务启动后立即看到以下异常:

Unhandled exception. System.AggregateException: Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType:

我看不出 ECS 可能导致立即验证 DI 注册的原因。是否有任何我不知道的已知 ECS 行为?

标签: dockerasp.net-coreamazon-ecsaws-fargatedocker-container

解决方案


推荐阅读