gpt4 book ai didi

c# - 为什么我的堆栈跟踪不包含最初调用它的页面?

转载 作者:行者123 更新时间:2023-11-30 18:40:39 25 4
gpt4 key购买 nike

据我了解,asp.net 异常。如果我有一个调用某些代码的页面,该代码又会调用另一段代码。如果代码的最后一位(比如它在不同的 dll 中)抛出异常,并且它无处处理,那么我应该让页面在 YSOD 上抛出错误,该 YSOD 具有堆栈跟踪,以倒序的时间顺序显示发生了什么。因此,我将在堆栈底部跟踪已执行的第一位代码,然后在其上方,下一段代码一直流到顶部,实际错误发生的位置。

考虑到这一点,我有一个未在堆栈跟踪中显示 aspx 页面的应用程序。它也没有显示对 asp.net 堆栈的通常初始调用,例如:

at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at Community.Support.BasePage.OnLoad(EventArgs e) in C:\Projects\Unilever\BinaryFiles\Support\BasePage.cs:line 389 at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

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

最佳答案

由于您使用的是 BasePage 类,因此获取详细信息的一种好方法是覆盖 OnError 方法;页面中所有未处理的错误都会触发此方法。然后,收集有关页面的信息并将其添加到错误中,或添加到记录的语句中。

HTH.

关于c# - 为什么我的堆栈跟踪不包含最初调用它的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7889636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com