c# – ASP.NET核心 – 在Visual Studio 2015中通​​过Docker进行调试时出现问题

我在使用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时,如下图所示.

enter image description here

我的应用程序成功构建但是,我在docker上运行/调试应用程序时遇到以下错误,我的应用程序卡在“打开站点http://192.168.99.100:5000

enter image description here

错误详情:
    Current运行时框架与’app’不兼容
    当前运行时目标框架:’DNX,Version = v4.5.1(dnx451)’
    请确保运行时与project.json中指定的框架匹配

>由于上面的错误消息表明框架中存在不匹配,我通过修改默认别名并执行命令dnvm use default -p将默认和活动运行时更改为dnx-coreclr-linux-x64.1.0.0-rc1-update1.然后,我重启我的VS(以确保在VS中可以看到更改).

enter image description here

但是,我的应用程序仍然建立在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还原从命令行停止工作并给出以下错误

‘dnu’ is not recognized as an internal or external command,operable
program or batch file.

有趣的是,’dnu’restore命令继续在VS中运行(如VS构建日志中所示).

>然后我尝试将dnvm运行时更改为dnx-mono.1.0.0-rc1-update1.但它失败并出现以下错误

Cannot find dnx-mono.1.0.0-rc1-update1.1.0.0-rc1-update1,do you need
to run ‘dnvm install
default’?
At C:\Program Files\Microsoft DNX\Dnvm\dnvm.ps1:1659 char:9
+ throw “Cannot find $runtimeFullName,do you need to run ‘$Com …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (Cannot find dnx…stall default’?:String) [],Run
timeException
+ FullyQualifiedErrorId : Cannot find dnx-mono.1.0.0-rc1-update1.1.0.0-rc1-update1,do you nee
d to run ‘dnvm install default’?

我需要使用什么运行时从VS运行docker以及如何更改它?请求您的帮助以解决问题.

更新
 我终于能够通过将docker文件第一行更改为FROM microsoft / aspnet来解决此问题:1.0.0-rc1-update1-coreclr FROM microsoft / aspnet:1.0.0-rc1-update1.谢谢@bertt的提示.

最佳答案
你的dockerfile的第一行是什么?
对于CoreClr,应该是’FROM microsoft / aspnet:1.0.0-rc1-update1-coreclr’

相关文章

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Li...
1、什么是docker?答:docker是开源的应用容器引擎;开发人员把他们的应用及依赖包打包发布到容器当中。...
1、什么是namespace? 答:名称空间,作用隔离容器 2、namespace隔离有那些? 答:ipc:共享内存、消息队...
1、Docker能在非Linux平台(Windows+MacOS)上运行吗? 答:可以 2 、如何将一台宿主机的docker环境...
环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10...
文档上传地址:https://files.cnblogs.com/files/lin-strive/07-docker%E8%B7%A8%E4%B8%BB%E6%9C%BA%E7...