2011-07-08 7 views
0

エラーを発生させるPage_Errorメソッドと、global.asaxのApplication_Errorの両方があります。 Pageが例外をスローすると、実行されるルーチンはApplication_Errorになります。しかし、その1つの特定のページについては、Page_Errorで異なる処理をしたいと考えています。それを達成する方法はありますか?Application_ErrorがPage_Errorよりも優先されます

おかげで、 パヴェル

P.S.おそらく、例外がスローされる原因は、ファイルが大きすぎてアップロードされているためです(ファイルアップロードページでweb.config設定よりも大きなファイルを処理する方法をテストしました)。Page_Errorはまだ配線されていませんか?

答えて

1

Page_Errorと同じ機能から、ページを確認することができます。見た目が異なる場合は、動作が異なります。

if(HttpContext.Current.Request.Path.EndsWith("YourFileName.axd", StringComparison.InvariantCultureIgnoreCase)) 
{ 
    // the diferent way 
} 
else 
{ 

} 

次の方法は、ページ内での動作が異なります。

public override void ProcessRequest(HttpContext context) 
{ 
    try 
    { 
     base.ProcessRequest(context); 
    } 
    catch (Exception x) 
    { 
     // here is the different, since you catch here is not move to the Page_Error 
     // except is a code error... in any case you can do an extra error clear. 
    } 
} 
+0

ProcessRequestは円滑に機能しました。それでも私はPage_ErrorとApplication_Errorが私のために働いたことを誇りに思っています。おそらく、例外がスローされるのは、アップロードされるファイルが大きすぎるためです(ファイルアップロードページでweb.config設定よりも大きなファイルを処理する方法をテストしました)。 – dragonfly

+0

@dragonflyはいWeb.configの設定、既定の制限が2Mだと思います – Aristos

+0

制限はここでは問題ではありません。私は意図的にweb.configの設定に対してそれをテストするために大きなファイルをアップロードしました。私はPage_ErrorメソッドでASP .NETランタイムエラーをハンドリングしたかったのですが、呼び出されることはありません。 – dragonfly

関連する問題