Linux 无法加载应用程序或执行命令';Microsoft.AspNet.Server.Kestrel';。可用命令:web

Linux 无法加载应用程序或执行命令';Microsoft.AspNet.Server.Kestrel';。可用命令:web,linux,ubuntu,docker,dnx,kestrel-http-server,Linux,Ubuntu,Docker,Dnx,Kestrel Http Server,尝试在docker(部署到Ubuntu Linux)上运行简单的webapi应用程序时,我遇到了一个奇怪的异常:运行container: 无法加载应用程序或执行命令“Microsoft.AspNet.Server.Kestrel”。可用命令:web 到目前为止我所做的。。我已将我的aspnet5解决方案上载到Linux计算机并运行以发布它:dnu发布--框架dnxcore50--配置发布--wwwroot“wwwroot”--wwwroot out“wwwroot”--iis命令“web” 接下

尝试在docker(部署到Ubuntu Linux)上运行简单的webapi应用程序时,我遇到了一个奇怪的异常:运行container:
无法加载应用程序或执行命令“Microsoft.AspNet.Server.Kestrel”。可用命令:web

到目前为止我所做的。。我已将我的aspnet5解决方案上载到Linux计算机并运行以发布它:dnu发布--框架dnxcore50--配置发布--wwwroot“wwwroot”--wwwroot out“wwwroot”--iis命令“web”

接下来,我完成了docker build以创建一个映像,然后尝试使用:sudoDocker run-t-d-p8000:8000 myimagename运行它

查看docker日志,我看到上面显示的异常

我登录到容器中查看文件夹结构和所有外观。容器中的Verifyid dnx和我用来构建解决方案的那个是相同的

使用最新可用的microsoft/aspnet映像-rc1-update1


有什么想法吗?

我可以在入口点之前的Dockerfile中运行以下命令:

ADD ./app
#SOLUTION
WORKDIR path_to_your_sources
RUN dnu restore
#########
WORKDIR /app/approot
ENTRYPOINT "./web"
尽管错误消息表明它希望在中使用命令“Microsoft.AspNet.Server.Kestrel”

这会很奇怪,但为了检查情况是否如此,我尝试:

    "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "Microsoft.AspNet.Server.Kestrel": "Microsoft.AspNet.Server.Kestrel"
  }
但它不起作用。
dnu restore
修复了它,还不知道与错误消息的关系。

好的,我终于有幸用以下内容运行了我的应用程序:1。我已经从Dockerfile中删除了ENTRYPOINT,以便能够运行容器。2.我已经用“sudo docker exec-t-I mycontainer/bin/bash”3连接到容器。然后我在图像4中执行了“dnu恢复”。我可以用“DNXWeb”运行一个命令,所以,看起来问题在于二进制文件版本的差异。这怎么可能?我怎样才能避免这个问题?
    "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "Microsoft.AspNet.Server.Kestrel": "Microsoft.AspNet.Server.Kestrel"
  }