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

本文关键字:MVC6 应用程序 默认 网站 | 更新日期: 2023-09-27 18:32:58

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

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

警告: Microsoft.Extensions.DependencyInjection.DataProtectionServices[0] 用户个人资料和 HKLM 注册表均不可用。使用临时密钥存储库。受保护的数据在以下情况下将不可用 应用程序退出。警告: Microsoft.AspNet.DataProtection.Repository.EphemeralXmlRepository[0] 使用内存中存储库。密钥不会保留到存储中。宿主环境:生产 现在正在收听: http://localhost:23000 应用程序已启动。按 Ctrl+C 关闭。 info: Microsoft.AspNet.Hosting.Internal.HostingEngine[1] 请求启动 HTTP/1.1 获取 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 中所述

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

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

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

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

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

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