2011-03-18 65 views
2

我已經創建了一個MVC3應用程序,並在web.config中的上添加了cutomerrors屬性。它的工作原理在Chrome和Firefox,但是當我在IE9中運行它,我得到在asp.net中的錯誤處理MVC3

網站無法顯示該頁面

HTTP 500

最可能的原因: •網站正在維護中。 •網站有編程錯誤。

你可以嘗試什麼:

<?xml version="1.0"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=152368 
    --> 

<configuration> 
    <appSettings> 
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    </appSettings> 

    <system.web> 
     <customErrors mode="On"></customErrors> 
    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </assemblies> 
    </compilation> 

    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
    </authentication> 

    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages"/> 
     </namespaces> 
    </pages> 
    </system.web> 

    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

回答

3

Internet Explorer版本中存在一個已知問題,其中自定義錯誤頁必須至少512字節。雖然這通常適用於舊的IE版本,並且通常會導致404錯誤頁面,但我建議確保您的自定義錯誤頁面大小爲1 kB。您可能會放入一些HTML註釋或其他內容。只是爲了確保它與那個舊的IE bug無關。許多

只是一個參考: http://perishablepress.com/press/2008/01/21/important-note-for-your-custom-error-pages/

+0

感謝它的工作。然而,一個問題是,因爲我使用VS開發服務器。所以當我運行我的MVC應用程序時,它遇到了控制器中發生異常的地方,然後我按回車顯示錯誤頁面。不能直接進入錯誤頁面? – DotnetSparrow 2011-03-18 09:23:42

+0

你的意思是「它到達了什麼地方」?你的意思是VS在調試器中保存?如果是這樣,你可以使用你的Visual Studio主菜單「調試」»「例外...」,在那裏你可以設置你想處理的異常,這可能會有所幫助。對於更多的控制,你可以看看這裏:http://stackoverflow.com/questions/183316/asp-net-mvc-handleerror/192371#192371(但這是另一個故事) – thmshd 2011-03-18 09:31:28

+0

謝謝!經過無數小時試圖找出它...愛上IE。 +1 – edgi 2012-06-04 15:30:53

0

這是內置的IE錯誤頁面。你可以發佈你的web.config,以便我們可以看到你在那裏?

<customErrors mode="On" defaultRedirect="/Home/Error"> 
    <error statusCode="403" redirect="/Home/NoAccess" /> 
    <error statusCode="404" redirect="/Home/NotFound" /> 
    <error statusCode="500" redirect="/Home/Internal" /> 
</customErrors> 

是我期望在web配置中看到的。我不確定在其他瀏覽器中顯示的頁面。

我想IE9預計會返回一些內容,嘗試添加內部操作和視圖到您的家庭控制器,並指定defaultRedirect =「/家庭/內部」,看看是否有效。

+0

我已經更新的問題。請參閱web.config – DotnetSparrow 2011-03-18 09:15:19