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

时间:2018-07-17 15:53:04

标签: linux windows docker asp.net-core-webapi

我正在尝试使用以下方法部署从80端口公开的asp.net核心webapi服务:

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

错误:

  

警告:   Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [35]        未配置XML加密器。密钥{e60978fd-16bc-4ff2-8525-39b5d0c36be5}可以以未加密形式持久存储。托管环境:生产内容的根路径:   / app现在正在监听:http://[::]:80应用程序已启动。按   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
  操作系统/存档: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实验性:false

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

3 个答案:

答案 0 :(得分:2)

这两个警告是完全不相关的。

对于DataProtection警告,我建议遵循here on the official ASP.Net Core documents提出的指导。如果您想深入研究相关的源代码和决策,可以查看此relevant ASP.Net GitHub PR

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

答案 1 :(得分:2)

这是因为在创建ASP.NET Core项目时选择了“配置HTTPS”选项。这将添加HttpsRedirectionMiddleware中间件,该中间件将为您的Web应用程序强制实施SSL连接。您创建的docker文件仅指定HTTP端口。因此,HttpsRedirectionMiddleware失败并关闭了该应用程序。基本上,如果在创建项目时未选择“为HTTPS配置”选项,则可以正常进行或确保SSL正确设置(端口和证书)。

答案 2 :(得分:-2)

您的端口仅指定http协议而不是https,您可能必须找到一种方法使docker仅查看80并忽略用于https的443端口