2011-07-08 108 views
0

我在頁面中有導致錯誤的Page_Error方法,而在Global.asax中有Application_Error。當頁面拋出異常時,執行的例程是Application_Error。但是對於那個特定的頁面,我希望在Page_Error中有不同的處理。有什麼辦法可以實現它嗎?Application_Error優先於Page_Error

感謝, 帕維爾

附:也許這是因爲異常被拋出是由於上傳的文件過大導致的(我測試過文件上傳頁面如何處理大於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設置,如果我記得默認的限制是2Mg – Aristos

+0

限制在這裏不是問題。我故意上傳大文件,以針對web.config設置進行測試。我想在Page_Error方法中處理ASP .NET運行時錯誤,但它永遠不會被調用。 – dragonfly