jua*_*dez 5 linux windows docker asp.net-core-webapi
我正在尝试使用以下方法部署从80端口公开的asp.net核心webapi服务:
docker run --rm -p 80:80 --name radicadorrest -it radicadorrest
Run Code Online (Sandbox Code Playgroud)
错误:
警告: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 commit:19e2cf6
内置:Thu Dec 7 22:25:13 2017
OS / Arch:linux / amd64服务器:版本:17.09.1-ce
API版本:1.32(最低
版本1.12 )Go版本:go1.8.3
Git提交:19e2cf6
内置:Thu Dec 7 22:26:35 2017 OS / Arch:linux / amd64 Experiment:false
我也尝试在Windows上以相同的结果。
Shi*_*nva 13
这是因为当您创建 ASP.NET Core 项目时,您选择了“为 HTTPS 配置”选项。这会添加 HttpsRedirectionMiddleware 中间件,它为您的 Web 应用程序强制执行 SSL 连接。您创建的 docker 文件仅指定了 HTTP 端口。因此 HttpsRedirectionMiddleware 失败并关闭应用程序。基本上,如果您在创建项目时没有选择“为 HTTPS 配置”选项,您就可以了,或者确保 SSL 设置正确(端口和证书)。
这两个警告是完全无关的。
对于DataProtection警告,我建议您遵循ASP.Net Core官方文档中此处提供的指导。如果您想深入了解相关的源代码和决策,则可以查看此相关的ASP.Net GitHub PR。
对于https重定向警告,我建议您仅从startup.cs通常通过定义的文件中删除https重定向策略,app.UseHttpsRedirection();除非您对容器实际使用了该策略,在这种情况下,您需要实际设置证书并公开HTTPS容器上的端口。