2012-04-02 16 views
3

私はASP.NET MVC3アプリケーションを構築していますが、標準のMVC例外処理メカニズムに加えて、Application_Startで何か問題が発生し、未処理の例外がスローされたときに静的なhtmlエラーページを表示したいそこ。Application_Start例外IIS7環境での処理

私はちょうど

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

を追加し、すべての "エラー" の場合にError.htmへのリダイレクトを期待しました。 Visual Studio Development Serverでは正常に動作しますが、IIS7ではまったく動作しません(「この特定のエラーメッセージの詳細を表示するには...」という標準の黄色の画面が表示されます)。 Application_Startで例外がスローされると、ASP.NETはError.htmにリダイレクトされ、この時点でIISはApplication_Startメソッドを再度呼び出して、同じ例外が無限ループに戻ります。

この問題を解決するにはどうすればよいですか? 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>