簡要處理:
我有一個ASPX頁面拋出一個異常兩次上執行操作時,其中的一個問題。ASP.NET錯誤與多個AJAX控件
詳情:
我有兩個ASP.NET控件(Intersoft Webgrids)。這些控件綁定到兩個不同的數據集,當我按下「運行」按鈕時,網格#1被更新,然後自動級聯和更新(或清除)網格#2。這兩個網格使用Intersoft的「FlyPostback」AJAX進行更新,該AJAX似乎與ASP.NET AJAX更新面板非常相似,即整個ASP.NET生命週期持續進行(Page_Load及所有這些)。
所有我的網頁,從它覆蓋的OnError基頁繼承。 OnError會記錄錯誤,清除錯誤並重定向到錯誤頁面。錯誤頁面顯示了一個很好格式化的異常詳細信息片段。
我onError方法看起來是這樣的
Session["lastError"] = Server.GetLastError();
Server.ClearError();//Have tried with and without this
this.ErrorPage = "ErrorPage.aspx";
Response.Redirect(this.ErrorPage, true);
問題:
當有異常情況按下「運行」按鈕後,會出現我似乎得到重定向到錯誤頁面的兩倍。我第一次重定向時,我可以看到(通過調試器)我在錯誤頁面上得到了正確的異常,但隨後我又重定向到錯誤頁面,這次我沒有異常細節。我沒有觀察到這個問題只有一個webgrid。在我看來,第二個網格也嘗試處理異常,但第一個網格已經處理並清除它。
更新:看起來像OnError只被調用一次,但錯誤頁面加載兩次。
問:
是否有明顯的錯誤嗎?有沒有更好的方法來處理這種情況?第一個網格應該處理異常並中止所有其他請求(或者至少讓他們做他們的事情而不打擾我),但是當然網格#1不知道網格2是否正在更新。
什麼是在第一和第二個例外之間的調用堆棧的區別? – Town 2011-05-10 10:11:52
看起來像OnError只被調用一次,但錯誤頁面加載兩次。 – row1 2011-05-11 01:40:25