将 ASP.NET 5 MVC 6 应用程序部署到 Linux & IIS 7

Deploying ASP.NET 5 MVC 6 Application to Linux & IIS 7

我有 asp.net 应用程序,出于此 post 的目的,它只是被默认的 MVC 6 项目替代。我正在尝试决定是否将它部署到我的 linux Debian 8.2 Jessie Server(首选)或 Windows Server 2008 R2 IIS 7。

就 Linux 而言,我已按照以下站点的说明进行操作,但我对如何以及在何处部署站点文件感到困惑。

Installing ASP.NET 5 On Linux

How to Install ASP.Net 5 on Ubuntu Linux

我也不确定我应该使用 Kestrel 还是 Mono。然后我听说 Docker 也被扔来扔去。我只需要知道在 linux 上托管 MVC 6 应用程序的最佳方式(不一定是最简单的方式)。

就 IIS 7 而言,我已按照此处的视频说明进行操作 ASP.NET5 MVC Deployment to IIS Web Server 但是当我尝试查看该站点时出现以下错误:

HTTP 错误 403.14 - 禁止访问 Web 服务器配置为不列出此目录的内容。 很可能 cause:A 没有为请求的 URL 配置默认文档,并且服务器上没有启用目录浏览。

请帮助我或为我指明正确的方向以解决此问题。

***** 编辑 *****

好的,我已经下定决心要让它正常工作。自从我第一次问这个问题以来,我在几个方面取得了进展。

首先我已经正确安装了 dnx、dnu、dnvm。我能够 运行 dnu 恢复以获取我的所有依赖项。我安装了 nginx,它将传入请求定向到我在 project.json 文件中设置的 127.0.0.1:5000

project.json:

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server Kestrel --server.urls http://localhost:5000",
    "ef": "EntityFramework.Commands"
  },

nginx:

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name aspnet.dev www.aspnet.dev;

        location / {
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://127.0.0.1:5004;
        }
}

然后我导航到根文件夹和 dnx web,它显示以下内容:

托管环境:生产 现在收听:http://localhost:5000 申请开始。按Ctrl+C关机。

现在,因为 nginx 将请求定向到 asp 项目

proxy_pass http://127.0.0.1:5004 

我可以看到正在处理一些请求。

info: Microsoft.AspNet.Hosting.Internal.HostingEngine[1]
      Request starting HTTP/1.0 GET http://***.**.**.***/
info: Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker[1]
      Executing action method AspNet5.Controllers.HomeController.Index with arguments () - ModelState is Valid'
info: Microsoft.AspNet.Mvc.ViewFeatures.ViewResultExecutor[1]
      Executing ViewResult, running view at path /Views/Home/Index.cshtml.
info: Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler[2]
      Executed action AspNet5.Controllers.HomeController.Index in 0.1468ms
info: Microsoft.AspNet.Hosting.Internal.HostingEngine[2]
      Request finished in 0.1849ms 200 text/html; charset=utf-8

但它不会向浏览器提供任何 html 服务。有什么建议吗?

如果有人对我刚刚如何更正我的问题感兴趣,请参阅此 post:Hiccups with Hosting ASP .NET 5 apps on Linux (RC1)