C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: ASP.NET MVCでのエラーハンドリング


(過去ログ 86 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■51124 / inTopicNo.1)  ASP.NET MVCでのエラーハンドリング
  
□投稿者/ スギの木 (4回)-(2010/06/25(Fri) 15:18:30)

分類:[ASP.NET (C#)] 

2010/06/25(Fri) 15:28:58 編集(投稿者)
みなさまこんにちは

ASP.NET MVC2.0(ターゲットのサーバは2003Server + IIS6)での
エラーハンドリングについて行き詰まってしまいました。
どうぞ知恵を貸してください。

エラーが発生した場合、Controllerのクラス/メソッドにフィルターをかけて
特定のエラー用のViewを表示したいとおもっています。
大まかに以下のようなつくりになっています。

[HandleError]
public class TESTController : Controller {
    public ActionResult Index() {
        throw new System.ApplicationException();
        return View();
    }
}
--------------------------------
/Views/Shared/Error.aspx
--------------------------------

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>
<html>
<body>
    <%=Html.Encode(Model.Exception.Message)%>
</body>
</html>


--------------------------------
Web.config
--------------------------------
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="Error" />
</system.web>
</system.web>

--------------------------------
Global.asax
--------------------------------
public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Top", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

        routes.MapRoute(
            "Root", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Top", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
    }
}


TESTControllerのIndexを実行するとError.aspxには遷移せず、以下のようなエラー画面が表示されます。

リソースが見つかりませんでした。 
説明: HTTP 404. 探しているリソース (または、その依存関係の 1 つ) が削除されたか、名前が変更されたか、また一時的に使用できません。
以下の URL のスペルが正しいことを確認してください。 
要求された URL: /Error

SharedにあるはずのファイルError.aspxを検索してくれていないように見えます。
2日くらいまえまではError.aspxが表示されていたのですが、昨日の深夜から突然.NETのエラーが表示されるようになってしまいました。
エラーの動きにかかわる部分は特に変更などはしていないはずなのですが…

修正、確認すべき箇所などありましたら、よろしくお願いします。

引用返信 編集キー/
■51126 / inTopicNo.2)  Re[1]: ASP.NET MVCでのエラーハンドリング
□投稿者/ スギの木 (6回)-(2010/06/25(Fri) 15:40:13)

すみません。自己解決しました。

プロジェクトを一旦削除し、すべてソースセーフから再取得後、ビルドしなおしたところ
正しくError.aspxが呼び出されるようになりました。
不安定だったようです。

ご覧になっていただいた方にはとても申し訳ありません。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -