2012-04-19 89 views
0

我正在評估Windows Azure中正在處理的MVC應用程序。我剛剛移植了應用程序,並且沒有任何問題地上傳。大約4周後我回來上傳下一個版本,現在我得到了一個異常。Windows Azure緩存cshtml文件?

來源:System.Web.WebPages 消息:節未定義:「main」。 堆棧跟蹤:在System.Web.WebPages.WebPageBase.RenderSection(字符串名稱,需要布爾值)ASP.Page_Views_Shared__Layout_cshtml.Execute()在e:\ sitesroot \ 0 \ Views \ Shared_Layout.cshtml:在System.Web的第77行。 System.Web.WebPages.WebPageBase.ExecutePageHierarchy()在System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext,TextWriter writer,WebPageRenderingBase startPage)在System.Web.WebPages.WebPageBase.RenderSurrounding()上的System.Web.Mvc.WebViewPage.ExecutePageHierarchy()WebPages.WebPageBase.ExecutePageHierarchy字符串partialViewName,Action`1正文)在System.Web.WebPages.WebPageBase.PopContext()在System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext上下文)在System.Web.Mvc.Async.AsyncControllerActionInvoker。 <> c_ DisplayClass25.b _22(IAsyncResult asyncResult)at System.Web.Mvc.Controller。 <> c_ DisplayClass1d.b _18(IAsyncResult asyncResult)at System.Web.Mvc.Async.AsyncResultWrapper。 <> c_ DisplayClass4.b _3(IAsyncResult ar)at System.Web.Mvc.Controls.EndExecuteCore(IAsyncResult asyncResult)at System.Web.Mvc.Async.AsyncResultWrapper。 <> c_ DisplayClass4.b _3(IAsyncResult ar)at System.Web.Mvc.MvcHandler。 <> c_ DisplayClass6。 <> c _DisplayClassb.b_ 4(IAsyncResult asyncResult)at System.Web.Mvc.Async.AsyncResultWrapper。 <>Ç _DisplayClass4.b__3(IAsyncResult的AR)在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()在System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟,布爾& completedSynchronously)

我認爲會發生這種情況的唯一原因是_layout.cshtml文件未更新,或者Home/Index.cshtml文件未更新。 MVC應用程序可以在Windows Azure模擬器中運行或在IIS中獨立運行。

我已經完全刪除角色並重新部署以及升級。我沒有配置CDN或Azure緩存,並且可以確認自上次成功部署以來已添加到項目中的文件。

現在我的想法......

編輯:

我已經收窄的問題倒在子佈局Html.RenderAction通話。我想知道這是否是我正在測試的MVC 4項目的問題。我已經加載了最新的System.Web.Mvc dll作爲我的項目的一部分,但是否在Azure服務器上存在問題?

回答

0

問題已解決。問題是通過RenderAction返回的局部視圖失敗。這是因爲部分視圖包含一個由數據庫調用填充的選擇列表,並且與數據庫的連接失敗。 Azure上的數據庫是SQL Azure數據庫,但在本地它只是一個SQL 2008 R2數據庫。我以爲我已經測試了與SQL Azure的數據庫連接,但顯然不是。

謝謝你的時間明。

0

我想知道@layout.cshtml中是否有@RenderSection(「main」)。如果有,請確保每個使用_layout.cshml的頁面都有一個名爲main的部分,而不僅僅是Index.aspx。正如您所提到的,該項目在本地運行良好,我建議您確保將最新版本部署到雲中。也請嘗試重新構建解決方案,刪除發佈包,並重新打包以查看是否有幫助。

最好的問候,

Ming Xu。

+0

不幸的是,這並沒有幫助。 – Moth 2012-04-19 08:45:54

+0

由於該問題無法在我的身邊複製,請您上傳/共享SkyDrive上的測試項目嗎?實際上,爲了解決這個問題,我們確實需要源代碼來重現問題,以便我們可以在內部調查問題。您沒有必要發出完整的項目來源。我們只需要一個最簡單的樣本來重現問題。您可以從中刪除任何機密信息或業務邏輯。然後我們可以更方便地找到問題併爲您提供進一步的建議。 – 2012-04-19 13:17:42