2012-04-02 132 views
3

我正在構建ASP.NET MVC3應用程序,並且除了標準的MVC異常處理機制之外我想在Application_Start中出現錯誤並拋出未處理的異常時顯示靜態html錯誤頁面那裏。IIS7環境中的Application_Start異常處理

我剛加入

<customErrors mode="On" defaultRedirect="Error.htm"> 

和預期重定向Error.htm在所有 「錯誤」 的情況。它適用於Visual Studio開發服務器,但根本無法使用IIS7(我看到標準的黃色屏幕顯示「爲了使這個特定的錯誤消息的細節可以在...上看到」)。看起來,當在Application_Start中引發異常時,ASP.NET重定向到Error.htm,並且此時IIS再次調用Application_Start方法,在那裏同樣的異常再次拋出aaa並歡迎無限循環。

有什麼方法可以解決這個問題?可以在不更改IIS設置的情況下完成嗎?如果不是,應該如何在IIS端正確完成?

回答

-1

比從未更好的遲到。這是處理錯誤的標準方式:

testproject \查看\共享\ Error.cshtml

@model System.Web.Mvc.HandleErrorInfo 
@{ 
    ViewBag.Title = "Error"; 
} 
<p>an error occurred</p><br /> 
<p>Try again.Go on this <a href="javascript:history.go(-1)">link</a></p> 

testproject \ \控制器TestController.cs

namespace testproject.Controllers 
{ 
    [HandleError] 
    public class TestController : Controller 
    {} 
} 

testproject \ Web.config中

<system.web> 
    <customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml" /> 
</system.web>