如何查看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块以查看实际错误消息?
注释是正确的。如果正在抑制异常,则无法拦截该异常。
然而,如果它正在向上传播调用堆栈,那么您可以添加一个新的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>