Linux 无法确定Docker中重定向的https端口

Linux 无法确定Docker中重定向的https端口,linux,windows,docker,asp.net-core-webapi,Linux,Windows,Docker,Asp.net Core Webapi,我正在尝试部署一个asp.net核心webapi服务,该服务通过以下方式从80端口公开: docker run --rm -p 80:80 --name radicadorrest -it radicadorrest 错误: 警告: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] 没有配置XML加密程序。密钥{e60978fd-16bc-4ff2-8525-39b5d0c36be5}可以以未加密的形式保存到

我正在尝试部署一个asp.net核心webapi服务,该服务通过以下方式从80端口公开:

docker run --rm -p 80:80 --name radicadorrest -it radicadorrest
错误:

警告: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] 没有配置XML加密程序。密钥{e60978fd-16bc-4ff2-8525-39b5d0c36be5}可以以未加密的形式保存到存储器中。托管环境:生产内容根路径: /应用程序正在侦听:应用程序已启动。按 按Ctrl+C组合键关闭

警告: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] 无法确定重定向的https端口。应用程序正在关闭

我尝试过使用不同的端口,但我得到了相同的错误

Docker版本:

客户:版本:17.09.1-ce
API版本:1.32
Go版本:go1.8.3
Git提交:19e2cf6
建造时间:2017年12月7日星期四22:25:13
OS/Arch:linux/amd64

服务器:版本:17.09.1-ce
API版本:1.32(最低版本1.12)
Go版本:go1.8.3
Git提交:19e2cf6
构建时间:2017年12月7日星期四22:26:35 OS/Arch:linux/amd64实验性:错误


我也在Windows上尝试了同样的结果。

您的端口只指定http协议而不是https。您可能需要找到一种方法,让docker只查看80并忽略用于https的443端口。

这两个警告完全不相关

对于DataProtection警告,我建议遵循提供的指导。如果您想深入了解相关的源代码和决策,您可以看到这一点


对于https重定向警告,我建议只需从
startup.cs
文件中删除https重定向策略,该文件通常通过
app.UseHttpsRedirection()定义
除非您实际为容器使用此策略,并且在这种情况下,您需要实际并公开容器上的HTTPS端口。

这是因为在创建ASP.NET核心项目时,您选择了“配置HTTPS”选项。这将添加HttpsRedirectionMiddleware中间件,该中间件为您的web应用程序强制实施SSL连接。您创建的docker文件仅指定HTTP端口。因此,HttpsRedirectionMiddleware出现故障并关闭应用程序。基本上,如果您在创建项目时没有选择“Configure for HTTPS”选项,您就可以正常工作,或者确保SSL设置正确(端口和证书)