在迁移到 .NET Core 3 时,我已从 Newtonsoft.Json 序列化切换到 System.Text.Json.Serialization。在我想继续使用 JsonPropertyName 属性的所有功能中。
[JsonProperty(Order = 1)]
public bool Deleted { get; set; }
[JsonProperty(Order = 2)]
public DateTime DeletedDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
有没有办法在 System.Text.Json.Serialization 中实现相同的目标?
基本上,我需要使用ECS容器的Bitbucket源代码配置CI / CD。我想使用CodePipline将新的ECR映像部署到ECS。
当前,AWS CodePipline中没有选项将bitbucket指定为源。但是,我设法通过Webhooks配置CodeBuild,因此它会构建docker文件,并在每次发布发布分支时将其推送到ECR。
我想将ECR配置为CodePipline中的“源”阶段,并将其部署到现有的ECS群集/服务中,因此部署将自动进行。
不幸的是,如果在部署步骤中出现以下错误,则会导致基本配置和工件链接:
Invalid action configuration
The image definition file imageDetail.json contains invalid JSON format
Run Code Online (Sandbox Code Playgroud)
尽管“ Amazon ECR”阶段将imageDetail.json作为输出工件提供,但“ Amazon ECS”部署提供程序似乎并不期望这样做。有什么合理的方法解决这个问题吗?
我知道,可以使用bitbucket + API Gateway / Lambda + CodePipeline配置CI / CD,我也考虑使用CodeCommit代替bitbucket作为源存储库-仍然,希望有一种可能的优雅解决方案,将bitbucket与直接使用CodePipeline。
UPD: 我得到的配置非常好,如本博文所述:总体思路是允许CodeBuild将源代码从bitbucket上传到S3,然后使用CodePipeline和S3作为源将新的docker映像部署到ECR并发布ECS集群中新的任务定义修订。S3仍在开销中,我正在为该任务寻找更优雅的解决方案。
对于部署在单个 AWS EC2 主机上的 .NET Core 2.2 应用程序,我比较了 IIS 托管与普通 Kestrel 托管。
对于 IIS 配置,我遵循了 MS文档。
对于 Kestrel,我只是使用了:
dotnet app.dll --server.urls http://*:5000
Run Code Online (Sandbox Code Playgroud)
我正在使用 JMeter 运行“压力”测试以比较吞吐量。这个测试只是用 100 个线程调用应用程序的端点,持续 10 秒(5 秒预热)。请注意,该端点基本上是在每次调用时从 MSSQL Server 数据库获取相同的数据,没有缓存等。
因此,Kestrel 会因套接字关闭/超时错误而失败 75% 的请求:
问题:什么样的配置错误会导致这种 Kestrel 行为?我尝试在 Kestrel 前面使用基本的 nginx 反向代理,但仍然得到相同的结果。
amazon-ec2 ×1
amazon-ecs ×1
asp.net-core ×1
aws-ecr ×1
c# ×1
iis ×1
jmeter ×1
json ×1
kestrel ×1
migration ×1