2017-05-03 4 views
0

MVCでカスタムエラーの構成ファイルを構成しました。だから、カスタムエラーの構成は以下のとおりです。構成のカスタムエラーにより、mvcで「エラーが多すぎます」

<customErrors mode="On"> 
    <error statusCode="401" redirect="~/Views/UnAuthorized/ErrorUnauthorised"/> 
    <error statusCode="404" redirect="~/Views/UnAuthorized/ErrorResourceNotFound"/> 
</customErrors> 
<authentication mode="Windows" /> 
<authorization> 
    <deny users="?"></deny> 
    <allow users="*"></allow> 
</authorization> 

<httpErrors errorMode="Custom" > 
    <remove statusCode="401" /> 
    <error statusCode="401" path="http://localhost:port/UnAuthorized/ErrorUnauthorised" responseMode="Redirect" /> 
    <remove statusCode="404"/> 
    <error statusCode="404" path="http://localhost:port/UnAuthorized/ErrorResourceNotFound" responseMode="Redirect" /> 
</httpErrors> 

私のエラーページがで認証されていないユーザーを可能にする他の設定ファイルを別のフォルダ内にあるサーバー用:

<allow users="*"></allow> 

マイエラーページコントローラ:

public class UnAuthorizedController : Controller 
{ 
    // GET: UnAuthorized 

    public ActionResult ErrorUnauthorised() 
    { 
     return View("ErrorUnauthorised"); 
    } 

    public ActionResult ErrorResourceNotFound() 
    { 
     return View("ErrorResourceNotFound"); 
    } 
} 

アプリケーションを起動しようとすると、このページ〜/ Views/Unauthorized/ErrorUnauthorisedからブラウザメッセージが表示されます。「リダイレクトが多すぎます」httpErrorsセクションを削除すると、アプリケーションはインデックスページで正常に起動しますが、私は、configファイルで401と404エラーの両方を持っている場合、アプリケーションがエラー「あまりにも多くのリダイレクト」を示しているという結論になってしまったカスタムエラーページ

EDIT 示しています。 401エラーを取り除くと、アプリケーションは正常に動作しています。

+0

ErrorUnauthorised、ErrorResourceNotFoundビューを作成したかどうかを確認してください。サーバーが各要求に401,404ステータスコードを与えるため、リダイレクトが多すぎます。 –

+0

はい各ページのビューがあり、httpErrorsセクションを削除すると「リダイレクトが多すぎます」というメッセージが表示されなくなるため、ビューからは表示されません。 – Gamaboy

答えて

0

httpErrorsタグは必要ありません。 「?エラー= 1」私はaspxerrorpathクエリ文字列を追加したいいけないasp.netを知らせるために、クエリ文字列を追加

の1-:ちょうど

<customErrors mode="On" defaultRedirect="errorpage.htm?error=1" > 
     <error statusCode="404" redirect="filenotfound.htm?error=1" /> 
     <error statusCode="401" redirect="notauthorized.htm?error=1" /> 
</customErrors> 

ノートのsystem.web下、以下を追加しますエラーが発生したとき。

2 .htmファイルをアプリケーションのルートフォルダに配置します。

3いくつかのメッセージがある場合は、c#コードで生成してエラーページ内に表示する必要があります。次に、global.asaxでapplication_errorイベントを使用して関連するエラーをキャッチし、ユーザーを目的のページにリダイレクトします。

+0

401エラーは処理されません。それは私のカスタムNotAuthorizedページ – Gamaboy

+0

mmmではない401エラーをスローする認証ウィンドウをキャンセルすると、その特定のページのパスワードとユーザー名を要求する認証ウィンドウを示しています申し訳ありません私はこの方法でWindows認証ウィンドウを処理しようとしたことはありません。コードで処理する方法を見つけようとすると、global.asaxファイル内のイベントでなければなりません。 –

関連する問題