Response.Redirect異常處理報錯


response.redirect放在try塊里面報中止線程錯誤
2010-8-15 20:41:29    上傳者: 飛火蘭博   點擊率:127

System.Threading.ThreadAbortException,原因如下:
Response.End 方法停止頁的執行,並將該執行變換到應用程序的事件管線中的 Application_EndRequest 事件。 Response.End 后面的代碼行將不執行。 
此問題出現在 Response.Redirect 和 Server.Transfer 方法中,這是由於這兩種方法都在內部調用 Response.End。 
解決方案
若要解決此問題,請使用下列方法之一: 
對於 Response.End,調用 ApplicationInstance.CompleteRequest 方法而不調用 Response.End,以便跳過 Application_EndRequest 事件的代碼執行。 
對於 Response.Redirect,使用重載 Response.Redirect(String url, bool endResponse),對 endResponse 參數它傳遞 false以取消對 Response.End 的內部調用。例如: 
   Response.Redirect ("/mymaimai.aspx", false);如果使用這種解決方法,Response.Redirect 后面的代碼將得到執行。 
對於 Server.Transfer,請改用 Server.Execute 方法。 
狀態
這種現象是設計使然。
解決后的代碼:
try
{
Response.Redirect("/mymaimai.aspx",false);
}
catch 
{
// 異常處理
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM