2011-07-19 6 views
14

IIS 7.5にMVC3アプリケーションをデプロイします。IIS 7.5でMVCアプリケーションをホストするときに完全なエラーメッセージを表示します。

IIS 7.5でのみ発生するいくつかのエラーがあり、それらをデバッグしようとしています。ただし、エラーが発生するたびに、デフォルトのerror.cshtmlが表示されます。

  1. Visual Studio 2010でエラーを処理する方法と同様の詳細なエラーメッセージを表示することはできますか?

  2. OnHandleError属性を使用する場合、error.cshtmlに例外の詳細を渡すにはどうすればよいですか?

答えて

30

あなたError.cshtmlビューはタイプHandleErrorInfoのモデルを受け入れる必要があります。例外詳細はModel.Exceptionプロパティから取得できます。

たとえば、あなたのビューは次のようになります。これは、デバッグの目的であるならばデバッグ中に詳細情報を表示できるように、あなたのweb.configファイルでカスタムエラーをオフにするか、リモートに設定することができます

@model System.Web.Mvc.HandleErrorInfo 

@{ 
    ViewBag.Title = "Uh-oh, an error occurred/"; 
} 

<h2>One of us broke the site!</h2> 

@if (Model != null) 
{ 
    <h3>@Model.Exception.GetType().Name</h3> 
    <pre> 
     @Model.Exception.ToString() 
    </pre> 
    <p> 
     thrown in @Model.ControllerName @Model.ActionName 
    </p> 
} 
3

2

また、デバッグがオンになっていることを確認して、HTMLコメントで表示することもできます(サイトを閲覧している人には明白に見えません)。例:

@if (System.Web.HttpContext.Current.IsDebuggingEnabled) 

{ 
    <!-- 
    <P>@Model.Exception.ToString()</P> 
    --> 
} 
関連する問題