Asp.net-Mvc
“處理您的請求時發生異常。此外,執行自定義錯誤頁面時發生另一個異常……”
我正在嘗試將 MVC 網站發佈為 Azure webrole。
當我在本地執行它時,一切正常。
但是一旦我將它發佈到 Azure 並瀏覽一些 MVC 操作,我就會收到這個錯誤:
“/”應用程序中的伺服器錯誤。
執行時錯誤
描述:處理您的請求時發生異常。此外,在執行第一個異常的自定義錯誤頁面時發生了另一個異常。請求已終止。
我不明白錯誤處理程序如何遇到異常,因為錯誤是以預設方式處理的:
public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } }這是我的 web.config:
<?xml version="1.0"?> <configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections> <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> </namespaces> </pages> </system.web.webPages.razor> <appSettings> <add key="webpages:Enabled" value="false" /> </appSettings> <system.web> <httpHandlers> <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/> </httpHandlers> <pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers> </system.webServer> </configuration>這是 Error.cshtml:
@model System.Web.Mvc.HandleErrorInfo @{ ViewBag.Title = "Error"; } <h2> Sorry, an error occurred while processing your request. </h2>什麼會導致這個異常,為什麼我不能在本地重現它?
首先,在 web.config 中設置 customErrors = “Off” 並重新部署以獲得更詳細的錯誤消息,這將有助於我們診斷問題。您還可以 RDP 進入實例並在本地從 IIS 瀏覽到該站點以查看錯誤。
<system.web> <customErrors mode="Off" />首先猜測 - 您有一些未設置為 Copy Local = true 的引用(很可能是 Azure SDK 引用)。因此,您的所有依賴項都沒有被部署。
首先獲取詳細的錯誤並更新您的問題。
更新:VS2013 現在提供的第二個選項是遠端調試雲服務或虛擬機。