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’

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...