2012-03-23 3 views
1

URLルーティングを使用しているASP.NET 4 Webフォームアプリケーションがあります。私はApplication_Startで以下のルートを指定しています:ルーティングを使用したASP.NET 4 Webフォーム - エラー時にApplication_Errorが呼び出されない

routes.MapPageRoute( "Schedule"、 "Schedule"、 "〜/ Schedule.aspx");

かなり簡単です。 "http://example.com/Schedule"のリクエストを "http://example.com/Schedule.aspx"に再ルーティングしたいだけです。よく働く。ただし、ルーティングを使用しているときにアプリケーションが例外をスローすると、Global.asax内のApplication_Errorメソッドは実行されません。代わりに汎用の.netエラーメッセージが表示されます。私は完全な "Schedule.aspx"を使用して同じ例外をスローする場合、期待どおりに動作します。何か案は?

答えて

1

http://msdn.microsoft.com/en-us/library/24395wz3.aspx

Global.asaxファイルで定義されたエラーハンドラはASP.NETランタイムによって、要求の処理中に発生したエラーをキャッチします。たとえば、アプリケーションで発生していない.aspxファイルをユーザーが要求すると、エラーを検出します。 ただし、ユーザーが存在しない.htmファイルを要求した場合は、エラーをキャッチしません。非AS.NETエラーの場合は、インターネットインフォメーションサービス(IIS)でカスタムハンドラを作成できます。カスタムハンドラーは、サーバーレベルのエラーに対しても呼び出されません。

私は太字のテキストがなぜ期待どおりに機能していないと思いますか?申し訳ありませんが、素晴らしいソリューションはありません。

+0

ありがとう、それは少なくともそれがそれをやっている理由を説明するのに役立ちます。しかし、.net app内にカスタムハンドラを書く方法があればいいと思います。 –

関連する問題