2016-05-31 6 views
0

エラー500ページにカスタムHTTPヘッダーを追加したいのですが、コントローラーでそれをやりたいのですが、わかりません。例外時にhttpヘッダーを設定するにはどうすればよいですか?

public virtual void OnException(ExceptionContext filterContext) 
{ 
    if (filterContext.Exception is HttpException) 
    { 
     var statusCode = ((HttpException) filterContext.Exception).GetHttpCode(); 
     if (statusCode >= 500 && statusCode < 600) 
     { 
      filterContext.RequestContext.HttpContext.Response.AddHeader("Custom-Key", "error"); 
     } 
    } 
} 

Howevereを、それがヘッダーを追加しませんので、何かが間違っている必要があります。

これは私がしようとしているものです。

アイデア?

おかげ

答えて

1

あなたが例外を処理するために逃したので、これが起こっています。 try catchブロック内でこれを行うことを強くお勧めします(そうした場合、OnExceptionメソッドでこの例外をキャッチできません)。

質問に答えるには、この例外が処理されていることをコンテキストに伝える必要があります。

filterContext.ExceptionHandled = true; 

Alltogether:rustemたくさん

public virtual void OnException(ExceptionContext filterContext) 
{ 
    if (filterContext.Exception is HttpException) 
    { 
     var statusCode = ((HttpException)filterContext.Exception).GetHttpCode(); 
     if (statusCode >= 500 && statusCode < 600) 
     { 
      filterContext.RequestContext.HttpContext.Response.AddHeader("Custom-Key", "error"); 
      filterContext.ExceptionHandled = true; 
     } 
    } 
} 
+0

ありがとうございます、次の行を必要とします! –

関連する問題