簡體   English   中英

為什么我的堆棧跟蹤不包含最初調用它的頁面?

[英]Why doesnt my stack trace include the page that it was originally called from?

據我了解asp.net異常。 如果我有一個頁面調用一些代碼,而這些代碼又會調用另一段代碼。 如果代碼的最后一位(比如它在不同的dll中)拋出一個異常,並且它無處處理,那么我應該讓頁面在具有堆棧跟蹤的YSOD上拋出錯誤,該堆棧跟蹤以反向的時間順序顯示發生了什么。 所以我將在堆棧底部跟蹤執行的第一個代碼然后在它上面,下一個流程一直到頂部,其中發生了實際錯誤。

記住,我有一個應用程序沒有在堆棧跟蹤中顯示aspx頁面。 它也沒有顯示對asp.net堆棧的通常初始調用,如:

System.Web.UI.Control.OnLoad上System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)的System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e) (EventArgs e)位於C:\\ Projects \\ Unilever \\ BinaryFiles \\ Support \\ BasePage.cs中的Community.Support.BasePage.OnLoad(EventArgs e):System.Web上的System.Web.UI.Control.LoadRecursive()中的第389行.UI.Page.ProcessRequestMain(布爾includeStagesBeforeAsyncPoint,布爾includeStagesAfterAsyncPoint)

我真的不明白為什么。 我得到的唯一提示是正在使用反射,我想知道這是為什么?

由於您使用的是BasePage類,獲取詳細信息的一種好方法是覆蓋OnError方法; 此方法將觸發頁面中所有未處理的錯誤。 然后,收集有關頁面的信息並將其添加到錯誤中,或將其添加到已記錄的語句中。

HTH。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM