我已经从here安装了ASP.NET Core 2.1预览版1和Visual Studio的最新预览版。
然后我按照以下步骤操作:文件>新项目> ASP.NET核心Web应用程序>选择API
,选中Enable Docker Support (Os: Linux)
和No Authentication
。
这很好地生成了项目模板,以及带有docker撰写文件的Docker项目。这样可以很好地构建,并提取所有需要的图像。但是,当我尝试使用Docker从Visual Studio中运行它时,它似乎无法工作。
在日志中,我看到以下内容:
内容根路径:/ app
现在听取:http://[::]:80
...
请求启动HTTP / 1.1 GET http://localhost:32778/ Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求启动HTTP / 1.1 GET http://localhost:32778/
现在,当我尝试对http://localhost:32778/api/values进行GET(使用Postman)时,没有看到任何反应:
无法得到任何回复 连接到http://localhost:32778/api/values时出错。
BUT! Docker日志显示正在进行请求:
Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求启动HTTP / 1.1 GET http://localhost:32778/api/values
[40m [32minfo [39m [22m [49m:Microsoft.AspNetCore.Hosting.Internal.WebHost [1] 请求启动HTTP / 1.1 GET http://localhost:32778/api/values
[40m [32minfo [39m [22m [49m:Microsoft.AspNetCore.Hosting.Internal.WebHost [2] 要求在14.4873ms 307完成 Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求在14.4873ms 307完成
我在这里缺少什么?如果我使用IIS Express运行默认项目,一切都按预期工作。
编辑:我刚刚在ASP.NET Core 2.0上对此进行了测试,一切正常。答案 0 :(得分:7)
正如@andrewbadera指出的那样,存储库发生了变化:
旧:microsoft/aspnetcore-build:2.0
新:microsoft/dotnet:2.1-sdk
旧:microsoft/aspnetcore:2.0
新:microsoft/dotnet:2.1-aspnetcore-runtime
我不知道为什么visual studio的模板已经没有使用它了,但很快他们就可能会解决这个问题了。
Visual Studio模板正在生成:
SDK => microsoft/aspnetcore:2.1
ASP NET => microsoft/aspnetcore-build:2.1
答案 1 :(得分:1)
我也在使用Docker上的netcoreapp2.1。您确定已成功拉下泊坞窗图像吗?因为当我创建一个新项目时,创建的Dockerfile具有:
FROM microsoft/aspnetcore:2.1 AS base
//...
//...
FROM microsoft/aspnetcore-build:2.1 AS build
从我在microsoft docker repo中看到的内容,这些图片只是不存在(!)。
VS中的输出显示:
========== Pulling Images ==========
Pulling missing Docker images. To cancel this download, close the command prompt window. To disable image auto-pull, see Tools > Options > Container Tools.
docker pull microsoft/aspnetcore:2.1
docker pull failed
我找到的最近的图片是:
microsoft/aspnetcore:2.1.0-preview1
microsoft/aspnetcore-build:2.1.300-preview1
并且应用程序正常工作,但还有另一个问题:在VS中调试时,调试器没有点击任何断点(因为PDB符号未加载,我不会知道为什么会这样。)
我刚刚描述的所有内容都适用于创建新的ASP.NET Core 2.0 项目。