我正在为我正在开发的 MVC 应用程序评估 Windows Azure。我不久前移植了该应用程序并上传没有任何问题。大约 4 周后我回来上传下一个版本,现在我遇到了一个异常。
来源:System.Web.WebPages 消息:未定义部分:“main”。堆栈跟踪:在 System.Web.WebPages.WebPageBase.RenderSection(String name, Boolean required) at ASP._Page_Views_Shared__Layout_cshtml.Execute() in e:\sitesroot\0\Views\Shared_Layout.cshtml:line 77 at System.Web.WebPages .WebPageBase.ExecutePageHierarchy() 在 System.Web.Mvc.WebViewPage.ExecutePageHierarchy() 在 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) 在 System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body) at System.Web.WebPages.WebPageBase.PopContext() at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c_ DisplayClass25.bSystem.Web.Mvc.Controller 处的_22(IAsyncResult asyncResult)。<>c_DisplayClass1d.b System.Web.Mvc.Async.AsyncResultWrapper 处的_18(IAsyncResult asyncResult)。<>c_DisplayClass4.b _3 ( IAsyncResult ar) 系统处。 Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncResultWrapper.<>c_ DisplayClass4.b _3(IAsyncResult ar) 在 System.Web.Mvc.MvcHandler.<>c_ DisplayClass6.<>c _DisplayClassb.b_ 4(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncResultWrapper.<>c_DisplayClass4.b__3(IAsyncResult ar) 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔和完成同步)
我认为会发生这种情况的唯一原因是 _layout.cshtml 文件未更新或 Home/Index.cshtml 文件未更新。MVC 应用程序在 Windows Azure 模拟器中运行或在 IIS 中独立运行时都能正常工作。
我已完全删除角色并重新部署和升级。我没有配置 CDN 或 Azure 缓存,我可以确认自上次成功部署以来添加到项目中的文件可用。
现在我没有想法...
编辑:
我已将问题缩小到在子布局中调用 Html.RenderAction。我想知道这是否是我正在测试的 MVC 4 项目的问题。我已经加载了最新的 System.Web.Mvc dll 作为我项目的一部分,但是 Azure 服务器上是否存在问题???