Windows Azure缓存cshtml文件?

时间:2012-04-19 01:12:24

标签: asp.net-mvc azure

我正在为我正在研究的MVC应用程序评估Windows Azure。我不久前移植了应用程序并上传没有任何问题。大约4周后我回来上传下一个版本,现在我被抛出一个例外。

来源:System.Web.WebPages 消息:未定义的部分:“main”。 堆栈跟踪:位于System.Web.WebPages的e:\ sitesroot \ 0 \ Views \ Shared_Layout.cshtml:第77行的ASP._Page_Views_Shared__Layout_cshtml.Execute()中的System.Web.WebPages.WebPageBase.RenderSection(String name,Boolean required) System.Web.WebPages.WebPageBase.RenderSurrounding上的System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext,TextWriter writer,WebPageRenderingBase startPage)中的System.Web.Mvc.WebViewPage.ExecutePageHierarchy()处的.WebPageBase.ExecutePageHierarchy() System.Web.Mvc.Asse.AsseControllerActionInvoker上的System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)中的System.Web.WebPages.WebPageBase.PopContext()处的partialViewName,Action`1 body。&lt;&gt; c_ <在System.Web.Mvc上的System> Web.Mvc.Controller。&lt;&gt; c_ DisplayClass1d.b _18(IAsyncResult asyncResult)中的em> DisplayClass25.b _22(IAsyncResult asyncResult)。 System.Web.Mvc.Controller.EndEx上的Async.AsyncResultWrapper。&lt;&gt; c_ DisplayClass4.b _3(IAsyncResult ar)位于System.Web.Mvc.MvcHandler的System.Web.Mvc.Async.AsyncResultWrapper。&lt;&gt; c_ DisplayClass4.b _3(IAsyncResult ar)的ecuteCore(IAsyncResult asyncResult)。&lt;&gt; c_ System.Web.Mvc.Async.AsyncResultWrapper上的 DisplayClass6。&lt;&gt; c _DisplayClassb.b_ 4(IAsyncResult asyncResult)。&lt;&gt; c _DisplayClass4.b__3(IAsyncResult) ar)在System.Web.HttpApplication.ExecuteStep的System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中(IExecutionStep step,Boolean&amp; completedSynchronously)

我认为发生这种情况的唯一原因是_layout.cshtml文件没有更新或者Home / Index.cshtml文件没有更新。 MVC应用程序在Windows Azure模拟器中运行或在IIS中独立运行时都能正常工作。

我已完全删除该角色并重新部署和升级。我没有配置CDN或Azure缓存,我可以确认自上次成功部署以来已添加到项目中的文件。

现在我没有想法......

编辑:

我已经将问题缩小到在子布局中调用Html.RenderAction。我想知道这是否是我正在测试的MVC 4项目的问题。我已经加载了最新的System.Web.Mvc dll作为我项目的一部分,但Azure服务器上是否存在问题???

2 个答案:

答案 0 :(得分:0)

我想知道你是否在_layout.cshtml中有@RenderSection(“main”)。如果有,请确保每个使用_layout.cshml的页面都有一个名为main的部分,而不仅仅是Index.aspx。正如您所提到的,该项目在本地工作正常,我建议您确保将最新版本部署到云端。还请尝试重建解决方案,删除发布包,然后再次打包以查看它是否有帮助。

最诚挚的问候,

徐明。

答案 1 :(得分:0)

问题已经解决。问题是通过RenderAction返回的局部视图失败了。这是因为部分视图包含一个由数据库调用填充的选择列表,并且与数据库的连接失败。 Azure上的数据库是SQL Azure数据库,但在本地它只是一个SQL 2008 R2数据库。我以为我已经测试了SQL Azure的数据库连接,但显然没有。

感谢您的时间明。