.net - 无法在 docker 中运行 Asp.Net core web api 脚手架应用程序?
问题描述
我使用 Visual Studio 2017 并创建了一个支持 docker (Linux) 的 Web API 应用程序。它在运行时给出了以下消息。
PS C:\> docker run hack2 警告:Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] 未配置 XML 加密器。密钥 {93297fb1-e111-46f6-91e1-1bb4878a3941} 可能会以未加密的形式保存到存储中 形式。 托管环境:生产 内容根路径:/app 现在收听:http://[::]:80 申请开始。按 Ctrl+C 关闭。
这是脚手架Docker
文件。
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base 工作目录 /app 曝光 80 暴露 443 FROM microsoft/dotnet:2.1-sdk AS build 工作目录 /src 复制 ["hack2/hack2.csproj", "hack2/"] 运行 dotnet 恢复“hack2/hack2.csproj” 复制 。. 工作目录“/src/hack2” 运行 dotnet build "hack2.csproj" -c Release -o /app FROM 构建 AS 发布 运行 dotnet 发布“hack2.csproj”-c 发布 -o /app 从基础 AS 最终 工作目录 /app 复制 --from=publish /app 。 入口点 ["dotnet", "hack2.dll"]
在本地 Windows 10 PC 中尝试时,它显示
$ curl 本地主机/api/值 % 总计 % 接收 % Xferd 平均速度 时间 时间 时间 当前 下载上传总花费剩余速度 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0curl: (7) 无法连接到 localhost 端口 80: 连接被拒绝
然后我将图像复制到 Linux 机器并尝试curl
curl localhost/api/values
<HTML><HEAD>
<TITLE>Request Error</TITLE>
</HEAD>
<BODY>
<FONT face="Helvetica">
<big><strong></strong></big><BR>
</FONT>
<blockquote>
<TABLE border=0 cellPadding=1 width="80%">
<TR><TD>
<FONT face="Helvetica">
<big>Request Error (invalid_request)</big>
<BR>
<BR>
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
Your request could not be processed. Request could not be handled
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
This could be caused by a misconfiguration, or possibly a malformed request.
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica" SIZE=2>
<BR>
For assistance, contact your network support team.
</FONT>
</TD></TR>
</TABLE>
</blockquote>
</FONT>
</BODY></HTML>
解决方案
您的机器上是否有 80 端口可用(默认 Web 服务器不使用?)
尝试docker run -p 80:80 hack2
有关如何与主机共享端口的详细信息,请查看Docker 文档。docker run --publish
推荐阅读
- mongodb - 显示 dbs 命令在 Windows CMD 中不起作用
- python - Python中的多处理创建单个进程
- phaser-framework - 如何使用Phaser在手机上制作全屏版
- jekyll - paginator.posts 在 Github 页面上的 Jekyll-paginate-v2 中不起作用
- javascript - 无法从 chrome 扩展加载 javascript
- javascript - 内联 JS 网络扩展
- python - 按索引分配随机质心
- azure - 使用 API 在 Azure AD 中注册应用程序(应用程序注册)?
- php - 如何在while循环php中使用复选框插入数据
- flutter - 如何在颤振中创建可滚动的选项卡