在默认网站下托管MVC6应用程序

时间:2016-02-02 04:45:23

标签: c# asp.net iis web-hosting asp.net-core-mvc

之前我曾托管过许多ASP.NET和MVC应用程序。我最近在玩MVC6,并试图主持一个MVC6应用程序。

如果我将其作为新网站托管,一切正常。当我将其作为IIS的默认网站下的应用程序托管时,它只显示一个空白页面。请在下面找到日志信息

  

警告:   Microsoft.Extensions.DependencyInjection.DataProtectionServices [0]         既没有用户个人资料也没有HKLM注册表。使用临时密钥存储库。受保护的数据将无法使用   申请退出。警告:   Microsoft.AspNet.DataProtection.Repositories.EphemeralXmlRepository [0]         使用内存存储库。密钥不会持久存储。主机环境:制作现在收听:   http://localhost:23000申请已开始。按Ctrl + C关闭。   info:Microsoft.AspNet.Hosting.Internal.HostingEngine [1]         请求启动HTTP / 1.1 GET http://localhost/MVC6信息:Microsoft.AspNet.Hosting.Internal.HostingEngine [2]         要求在0.0687ms 404完成

注意:默认网站使用应用程序池 asp.net4.5 ,我的MVC6应用程序使用它自己的应用程序池,如http://docs.asp.net/en/latest/publishing/iis.html#iis-server-configuration中所述

其他人遇到类似的问题吗?我想知道如何在默认网站下使其工作

1 个答案:

答案 0 :(得分:0)

编辑:这是vs2015 rc1 https://github.com/aspnet/Hosting/issues/416#issuecomment-149046552中的错误。

上述链接中存在针对此错误的解决方法,但我采用了不同的方法,因为我需要在多个网站中托管我的应用程序而不重新发布

我使用路径属性解决了上述问题。将route属性添加到操作结果后,应用程序正常工作

public class HomeController : Controller
    {
        [Route("MVC6")]
        [Route("")]
        public IActionResult Index()
        {
            return View();
        }    
    }