gpt4 book ai didi

c# - 如何访问 Global.ASAX 中 Application_Error 事件的对象属性?

转载 作者:行者123 更新时间:2023-12-01 22:23:59 24 4
gpt4 key购买 nike

我目前正在为一个应用程序编写一个带有日志记录的通用错误处理程序,它应该从发送者对象中提取有用的信息。

在我问我的问题之前,让我先给你一些背景:

我为此目的使用的 Global.asax 中的 Application_Error 处理程序定义如下:

protected void Application_Error(Object sender, EventArgs e)

当我在此方法中设置断点时,我通过本地窗口从发送者那里获得了很多有用的信息: Sender_Object_Global.asax

在类型列中,Visual Studio 建议对象的类型为 ASP.global_asax,但这似乎是一种人工类型,因为当我尝试将其转换为

var senderInfo = (ASP.global_asax)sender;

我收到以下错误:

CS0246: The type or namespace 'ASP' could not be found (are you missing a using directive or an assembly reference?)


问题:

  1. 事件参数:有没有办法将 sender 转换为包含 Locals 窗口显示的所有信息的合适类类型? (请注意,我不需要调试器显示的静态和非公共(public)成员)
  2. 异常对象:同样,异常对象也能实现吗? (您可以在屏幕截图中看到 exc 是 System.Exception 类型,但确切的类型是 System.Web.HttpUnhandledException。这对于 exc.InnerException 因为在这里我们得到了关于这个异常发生的原因的真实信息。)

        var exc = Server.GetLastError();
    var innerExc = exc.InnerException;

注意我在 Stackoverflow(herethere)中发现了一些类似的问题,但它们并不重复,因为它们处理的是不同的主题。

最佳答案

为此,您可以使用 System.Web.HttpApplication

Sample debug image

关于c# - 如何访问 Global.ASAX 中 Application_Error 事件的对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37785101/

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