如何查看asp.net应用程序中抛出的原始错误

本文关键字:原始 错误 何查看 asp net 应用程序 | 更新日期: 2023-09-27 18:23:50

我在web服务器中部署了一个asp.net 2.0 web应用程序。其中一个函数的代码如下:-

try
{
//Some System/.net Exception occurred
}
catch (Exception ex)
{
//Show custom message
}

正如您所看到的,system/.net异常在Catch块中被捕获,但实际的异常不会在任何地方显示或记录。如何在不修改代码的情况下查看Web服务器中发生的实际错误?

问题是我没有源代码,也不想在重新创建代码后反编译dll并重新部署dll。

此外,事件日志中没有任何记录。

有没有一种方法或工具可以找出在尝试中发生的错误。。。catch块以查看实际错误消息?

如何查看asp.net应用程序中抛出的原始错误

注释是正确的。如果正在抑制异常,则无法拦截该异常。

然而,如果它正在向上传播调用堆栈,那么您可以添加一个新的IHttpModule并记录异常,如下所示:

public class TheLogger : IHttpModule
{
    HttpApplication _ctx;
    public void Dispose()
    {
    }
    public void Init(HttpApplication context)
    {
        _ctx = context;
        _ctx.Error += _ctx_Error;
    }
    void _ctx_Error(object sender, EventArgs e)
    {
        var ex = _ctx.Server.GetLastError();
        File.AppendAllText("c:''log.txt", ex.ToString());
    }
}

添加对日志的引用到web.config:-

  <system.webServer>
    <modules>
      <add name="ExceptionLogger" type="ExceptionLogger.TheLogger, ExceptionLogger"/>
    </modules>
  </system.webServer>