2013-01-14 84 views
0

因此,最終我將我的MVC應用程序發佈到Azure雲服務。我的數據庫也在那裏。在將WindowsAzure項目添加到我的解決方案並將我的2個項目(模型和Web)添加爲角色後,我可以在本地運行該應用程序。無法看到Azure雲服務中的應用程序錯誤

但是當我運行的URL,我得到錯誤:

Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

所以我設置並重新發布,但我仍然得到同樣的錯誤

我需要強制Azure的告訴我發生了什麼和揭示錯誤,任何人有任何想法?

http://bizoptcloudservice01.cloudapp.net

+0

你說你設置 ...在你的網頁配置中? –

+0

是啊,那就是爲什麼我現在打這個磚牆。我發佈了cloudService項目,其中包含我的Web項目作爲角色。但我現在想知道如何檢查整個解決方案,包括我的web.config。我猜如果我能以某種方式查看真正的錯誤信息是什麼,Azure雲服務中是否存在日誌,我已經通過所有菜單在線看不到任何東西 – John

回答

2

沒有沒有內置到Azure雲服務日誌。你可以實現你自己的,但涉及到一些實現。在我的解決方案中,我創建了一個自定義錯誤頁面。我的web配置看起來像這樣:

<customErrors mode="On" defaultRedirect="~/error/Error"> 
... 
</customErrors> 

我有一個名爲「Error.cshtml」我查看/共享目錄視圖。使用上面的配置,只要我的應用程序出現錯誤,就會顯示它。

@model System.Web.Mvc.HandleErrorInfo 

@{ 
    ViewBag.Title = "Error"; 
} 

<h2> Sorry, an error occurred while processing your request!!?!</h2> 

<div> 
    Try again. If the problem persists... 
    Close all your browser windows and re-login to the application. If the problem still persists... 
    Contact the service desk with the details of this error. 
</div> 

     <h3>Error Details</h3> 
     <div> 
     <strong> 
     @Model.Exception.Message 
     </strong> 
      <pre>@Model.Exception.StackTrace</pre> 
    </div> 
    </div> 
</div> 

同樣爲了上面的工作,您需要將其添加到您的Global.ascx.cs中。它在出現錯誤時定義應用程序的默認行爲。像這樣:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
    } 

Here is a blog post that talks about it in some more details.

該職位,這問題的答案也進入記錄錯誤。如果你想要去的,應該讓這條路線供您參考:

Setting HTTP Status in ASP.NET MVC controller results does not render view

+0

謝謝,非常錯誤的東西,當我實現這個我只是得到同樣的錯誤,沒有什麼變化沒有辦法,我可以告訴發生了什麼事在那裏在azure服務,令人沮喪 – John

+0

你還有filters.Add(new HandleErrorAttribute());在Global.RegisterGlobalFilters? –

+0

我沒有在Global.RegisterGlobalFilters中設置任何東西,我應該怎麼做?我需要強制Azure顯示錯誤消息。自定義錯誤設置爲關閉在Azure中沒有任何區別。讓我覺得它好像web.config不能被看到或使用別的東西。當它說成功發佈似乎有其他人可以做 – John

1

檢查,你沒有覆蓋你的web.config與自動MVC項目transforms.The的Visual Studio 2012的模板設置添加此行該web.config.release文件:

當應用發佈你的web.config可能正在改變。

編輯:此外,您可能想看看ELMAH,這是一個偉大的日誌記錄工具,很容易添加到您的項目,將讓你看到每個錯誤而丟失信息的:

+0

如何停止在web配置的發佈版本中添加此行? – Kyle

+0

你有一個web.release.config文件嗎? – amhed

相關問題