之前我曾托管过许多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中所述
其他人遇到类似的问题吗?我想知道如何在默认网站下使其工作
答案 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();
}
}