【发布时间】:2016-07-18 01:25:03
【问题描述】:
我在 Visual Studio 中使用 Docker 运行基于 ASP.NET Core 构建的应用程序时遇到问题。我的应用程序只使用 dnxcore50 框架。我的 project.json 文件是:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final"
},
"frameworks": {
"dnxcore50": { }
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
],
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}
}
我尝试了以下方法:
- 当我的dnvm指向运行时dnx-coreclr-win-x64.1.0.0-rc1-update1如下图所示。
我的应用程序构建成功。但是,我在 docker 上运行/调试应用程序时出现以下错误,并且我的应用程序卡在“打开站点http://192.168.99.100:5000”
错误详情: 当前运行时框架与“应用程序”不兼容 当前运行时目标框架:'DNX,Version=v4.5.1 (dnx451)' 请确保运行时与 project.json 中指定的框架匹配
- 由于上述错误消息表明框架不匹配,我通过修改默认别名和执行命令
dnvm use default -p。然后,我重新启动我的 VS(以确保更改在 VS 中可见)。
但是,我的应用程序仍然在 DNX 版本 v4.5.1 上构建,如以下构建日志中所建议:
1> Information: [LoaderContainer]: Load name=Microsoft.Dnx.Tooling
1> Information: [PathBasedAssemblyLoader]: Loaded name=Microsoft.Dnx.Tooling in 2ms
1> Information: [Bootstrapper] Runtime Framework: DNX,Version=v4.5.1
1> Microsoft .NET Development Utility Mono-x64-1.0.0-rc1-16231
因此,应用程序再次无法运行,出现与第 1 点相同的错误。
此外,在更改默认运行时 dnu restore 停止从命令行工作并给出以下错误:
'dnu' 不是内部或外部命令,可操作 程序或批处理文件。
有趣的是,“dnu”恢复命令继续在 VS 中工作(如 VS 构建日志中所建议的那样)。
- 然后我尝试将 dnvm 运行时更改为 dnx-mono.1.0.0-rc1-update1。但它失败并出现以下错误:
找不到dnx-mono.1.0.0-rc1-update1.1.0.0-rc1-update1,需要吗 运行 'dnvm 安装 默认'? 在 C:\Program Files\Microsoft DNX\Dnvm\dnvm.ps1:1659 char:9 + throw "找不到$runtimeFullName,你需要运行'$Com ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (找不到 dnx...stall default'?:String) [], 运行 时间异常 + FullyQualifiedErrorId : 找不到 dnx-mono.1.0.0-rc1-update1.1.0.0-rc1-update1,你需要吗 d 运行'dnvm install default'?
我需要使用什么运行时从 VS 运行 docker 以及如何更改它?请求您的帮助以解决问题。
更新
我终于能够通过将 docker 文件的第一行更改为 FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr FROM microsoft/aspnet:1.0.0-rc1-update1 来解决这个问题。感谢@bertt 的提示。
【问题讨论】:
-
请转录所有屏幕截图的内容,以便文本可以阅读(如果很小),可以阅读(在不允许图像的联合提要等媒体中),可以读取(当图片链接最终断开时)并且可以被搜索到。
-
@ErikE 将图像细节添加为文本
标签: c# asp.net docker visual-studio-2015 asp.net-core