2016-08-23 6 views
3

私が得るあなたにあまりにも多くの時間をリダイレクトエラー: MVCのApplication_Start localhostが

localhost redirected you too many times.

私はApplication_Startメソッドからページをエラーにリダイレクト

私のコードは次のようになります。それは、その場合には、セッションを使用することをお勧めし

protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
    } 

    protected void Application_Error(Object sender, EventArgs e) 
    {  
     var exception = Server.GetLastError(); 

     if (exception != null) 
     {  
      Session["w"] = exception; 
      Response.Clear(); 
      Server.ClearError(); 
      Response.Redirect("~/Admin/Error");  
     } 
    } 
} 
+0

表示/管理/エラーを表示するとエラーが発生する可能性がありますか? – kblau

+0

いいえ...それは私に空のページがあなたにあまりにも多くの時間リダイレクトされたと言う空のページを与える – Tom

答えて

0

ではありません。 IRequiresSessionStateと表示されていないIHttpHandlerからエラーが発生した場合、セッションへのアクセスは失敗します。したがって、リダイレクトループが発生します。

セッションを使用して削除し、使用しよう:

Response.Redirect(String.Format("~/Admin/Error?w={0}", exception.Message)); 
+0

あなたの助けをありがとう:) :)今私にこのメッセージを与えるパス '/favicon.ico'のコントローラが見つかりませんでしたIControllerを実装しないでください。 最初に例外タイプをフィルタリングする必要があると思います – Tom

+0

確かに、私は別の問題を抱えています...エラービューにリダイレクトすると、ユーザーがリフレッシュをクリックすると再び同じエラーが発生します。あなたはそれを避けるために私を助けてください – Tom

+0

ありがとう@トム。だから、私が言ったように新しい質問がある場合は、[Ask Question](http://stackoverflow.com/questions/ask)ボタンをクリックして質問してください。コンテキストを提供する場合は、この質問へのリンクを含めてください。新しい質問にあなたの新しい問題を記述し、ここにリンクを残す – Marusyk

0

問題は、おそらくあなたは、上記まし行方不明favicon.icoファイルによって引き起こさFile Not Foundエラーに関連し、より多くのです。

解決するには、単にfavicon.icoファイルをプロジェクトルートに追加します。

オプションで、404が検出されたときにリダイレクトされないように、エラー処理を更新できます。

protected void Application_Error(Object sender, EventArgs e) 
{  
    var exception = Server.GetLastError(); 

    if (exception != null && exception != 404) 
    {  
     Session["w"] = exception; 
     Response.Clear(); 
     Server.ClearError(); 
     Response.Redirect("~/Admin/Error");  
    } 
} 
関連する問題