2012-08-23 42 views
1

我的代碼中存在重定向問題。網絡上提出的解決方案都沒有爲我工作。基本上我的代碼是這樣的(不是實際的代碼,只說明):Response.Redirect無法正常工作。 ThreadAbortException

protected void btnCool_Click(object sender, EventArgs e) 
{ 
    GetDataFromInterface(); 
    GetDataSpecificDataFromDB(); 
    SaveDataOnSession(); 
    Response.Redirect("SomePage.aspx", false); 
    Context.ApplicationInstance.CompleteRequest(); 
} 

一切都很好地執行,但該方法執行後我纔剛剛拋出到登錄頁面。在VS的輸出窗口中,我看到:「在mscorlib.dll中發生類型'System.Threading.ThreadAbortException'的異常,但未在用戶代碼中處理。」

下面是一些額外的信息:

    我不使用try catch塊
  • 我在這個頁面上沒有任何UpdatePanels,也沒有在母版頁中。
  • Application_Error甚至沒有觸發。
  • 我甚至有第二個按鈕是做幾乎同樣的事情(帶來了其他的數據),併成功地重定向到另一個頁面(相同的代碼)
  • 我在執行過程中感到不改變在web.config什麼。

編輯:澄清。無論如何拋出這個例外。重定向到所需的頁面不起作用(這意味着我的應用程序中有一個死角,我無法實現)。相反,我正在從應用程序中拋出。

請幫我解決這個問題。我真的沒有更多的線索,我可以遵循,所以任何建議可能會有所幫助。

+2

看看http://stackoverflow.com/questions/2777105/response-redirect-causes-system-threading-threadabortexception –

+0

我發現了這個問題。它來自其他地方。謝謝你的信息。我學到了新東西! – VictorB

回答

1

是的,它是默認。 這種情況的最佳做法是在下面提及

protected void btnCool_Click(object sender, EventArgs e) 
{ 
    try{ 
    GetDataFromInterface(); 
    GetDataSpecificDataFromDB(); 
    SaveDataOnSession(); 
    Response.Redirect("SomePage.aspx", false); 
    Context.ApplicationInstance.CompleteRequest(); 
    } 
    catch(ThreadAbortException Thrdex) 
    {} 
    catch(Exception ex) 
    { 
    //Handle exception 
    } 
} 
+0

謝謝你的回答。我發現問題來自其他地方。 – VictorB

1

好的。我發現了這個問題。這是PICNIC的經典案例。 該頁面未實現允許訪問特定類型用戶的界面。那麼,至少我學到了很多關於重定向和例外的知識。

非常感謝您的關注和答覆!