asp.Net   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc-3 – 找不到布局页面“{path}”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们刚刚获得了一个新的Windows 2008 R2服务器,我正在使用Razor View ENGIne在IIS 7.5中设置一个MVC 3站点。当我访问默认路由时,我收到一个奇怪的错误。

这是奇怪的,因为我明确地从/views/home/index.cshtml中设置布局:

@{
  Layout = "~/Views/Shared/_Layout.cshtml";
}

我有100%确定文件系统中存在/views/shared/_layout.cshtml。这是一个截图。

如果我删除了Layout =“〜/ Views / Shared / _Layout.cshtml”;从我看来,该页面将自己呈现/home/index.cshtml的内容(没有_Layout.cshtml的任何代码)。我也尝试使用_ViewStart.cshtml设置布局。

任何人都知道为什么MVC将无法“找到”布局文件?当在内置的视觉工作室的web服务器中运行时,这个网站工作得很好。

这是我的堆栈跟踪:

[httpException (0x80004005): The layout page "~/Views/Shared/_Layout.cshtml" could not be found at the following path: "~/Views/Shared/_Layout.cshtml".]
   System.Web.WebPages.WebPageExecuTingBase.NormalizeLayoutPagePath(String layoutPagE) +204956
   System.Web.WebPages.WebPageBase.PopContext() +150
   System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +384
   System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +33
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter,ResultExecuTingContext preContext,Func`1 conTinuation) +784900
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext,IList`1 filters,ActionResult actionResult) +265
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName) +784976
   System.Web.Mvc.Controller.ExecuteCore() +159
   System.Web.Mvc.ControllerBase.Execute(requestContext requestContext) +335
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessrequest>b__5() +62
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessrequest>b__d() +54
   System.Web.CallHandlerEXECUTIONStep.System.Web.httpApplication.IEXECUTIONStep.Execute() +453
   System.Web.httpApplication.ExecuteStep(IEXECUTIONStep step,Boolean& completedSynchronously) +371

解决方法

似乎你可能有一个权限问题。使用您提供的信息,似乎最可能的原因是无法找到_Layout.cshtml文件。

使用Server 2008和IIS 7,应用程序池具有用于ACL的自己的身份(命名为IIS AppPool {App Pool NamE}),这些身份是IIS_IUSRS组的一部分。此外,您的默认inetpub / wwwroot目录将具有IIS_ISRS组的读取权限。所以,如果你没有获得你需要的权限,我会认为App Pool实际上并没有正确的身份运行。

身份可能不正确的一个原因是匿名认证用户身份的设置。进入站点(或整个服务器)的验证控制,并编辑匿名验证规则作为应用程序池标识运行。

这有点猜测,但似乎是this fellow had nearly the exact same issue

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc-3 – 找不到布局页面“{path}”全部内容,希望文章能够帮你解决asp.net-mvc-3 – 找不到布局页面“{path}”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。