gpt4 book ai didi

c# - 如何查看在asp.net应用程序中引发的原始错误

转载 作者:行者123 更新时间:2023-12-03 08:55:50 25 4
gpt4 key购买 nike

我在部署的Web服务器中有一个ASP.NET 2.0 Web应用程序。该功能之一具有如下代码:

...

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

...

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

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

另外,事件日志中未记录任何内容。

是否有办法或方法找出try ... catch块中发生了哪个错误,以查看实际错误消息?

最佳答案

评论者是正确的。如果该异常被抑制,则无法拦截。

但是,如果正在传播调用栈,则可以添加一个新的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>

关于c# - 如何查看在asp.net应用程序中引发的原始错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956406/

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