2017-03-13 6 views
0

私のアプリケーション用のカスタムエラーページを作成しようとしていますが、ほとんどの場合動作しますが、403エラーは発生しません。ASP MVC 5 - 403 customErrorが機能しない

私のWeb.config:

<customErrors mode="On" defaultRedirect="~/Error"> 
    <error statusCode="404" redirect="~/Error/NotFound" /> 
    <error statusCode="500" redirect="~Error/InternalServer" /> 
    <error statusCode="403" redirect="~Error/Forbidden" /> 
</customErrors> 

私はこれらの要求を委任されたErrorControllerを持っています。 404がヒットすると、カスタムエラーページが表示されますが、403は表示されません。私はデフォルトのIIS 403 - Forbiddenページを取得していますが、カスタムエラーページを設定しています。私は周りを見て、代わりに<httpErrors>を使用しようとしましたが、それは毎回空白のページを私に与えるようです。

はここにある私のGlobal.asaxそれは任意の助けだ場合:

void Application_Error(object sender, EventArgs e) 
{ 
    Exception exc = Server.GetLastError(); 

    if (exc is HttpUnhandledException) 
    { 
     // Pass the error on to the error page. 
     Server.Transfer("ErrorPage.aspx?handler=Application_Error%20-%20Global.asax", true); 
    } 
} 

答えて

2

Uは、IIS 7+のための新しいアプローチを使用することができます。

<httpErrors errorMode="Custom" existingResponse="Replace"> 
     <remove statusCode="403" /> 
     <remove statusCode="404" /> 
     <remove statusCode="500" /> 
     <error statusCode="403" path="/Error" responseMode="ExecuteURL" /> 
     <error statusCode="404" path="/Error/404" responseMode="ExecuteURL" /> 
     <error statusCode="500" path="/Error/500" responseMode="ExecuteURL" /> 
</httpErrors> 

system.webServerセクションのhttpErrosセクション。

IIS構成refence: https://www.iis.net/configreference/system.webserver/httperrors
とも関連する質問: What is the difference between customErrors and httpErrors?

関連する問題