首页 文章

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

提问于
浏览
4

试图在docker上运行简单的webapi应用程序(部署到Ubuntu Linux)我在尝试运行容器时遇到奇怪的异常:
无法加载应用程序或执行命令'Microsoft.AspNet.Server.Kestrel' . 可用命令:web .

到目前为止我做了什么..我已经将我的aspnet5解决方案上传到Linux机器并运行发布它:dnu发布--framework dnxcore50 - 配置发布--wwwroot“wwwroot”--wwwroot-out“wwwroot”--iis-命令“web”

接下来我做了docker build来创建一个图像,然后尝试运行它:sudo docker run -t -d -p 8000:8000 myimagename

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

我已登录容器查看文件夹结构,看起来都很好 . 容器中的Verifyid dnx和我用来构建解决方案的那个是相同的 .

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

有任何想法吗??

1 回答

  • 1

    通过在ENTRYPOINT之前在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"
      }
    

    这将是非常奇怪的,但无论如何要检查是否是这种情况,我试过:

    "commands": {
        "web": "Microsoft.AspNet.Server.Kestrel",
        "Microsoft.AspNet.Server.Kestrel": "Microsoft.AspNet.Server.Kestrel"
      }
    

    它没有用 . dnu restore 修复它,还不知道与错误消息的关系 .

相关问题