gpt4 book ai didi

c# - Application_Error() 未触发

转载 作者:太空狗 更新时间:2023-10-29 17:57:58 25 4
gpt4 key购买 nike

我正在尝试运行一个将异常记录到数据库的 ASP.NET 应用程序。我正在使用 Application_Error 来捕获异常。

在添加连接字符串之前,只是为了测试我的代码(Logger 类和 Global.asax 中的代码),我尝试将错误记录到 Windows 事件查看器。这按预期工作。

但是在将连接字符串添加到 Web.config 文件并添加 ADO.NET 代码后,我尝试运行该应用程序。但是我得到了死亡的黄色屏幕:D

我不知道我的代码有什么问题。我只修改了 Web.config 文件中的 connectionStrings 元素并添加了 ADO.NET 代码。

这是代码。

这是 Page_Load 事件中的 Web 表单代码。 Countries.xml 文件不存在,预计会引发错误。

DataSet dataset = new DataSet();
dataset.ReadXml(Server.MapPath("~/Countries.xml"));
GridView1.DataSource = dataset;
GridView1.DataBind();

应用程序错误

Exception exception = Server.GetLastError();
if (exception != null)
{
Logger.Log(exception);
Server.ClearError();
Server.Transfer("~/Errors.aspx");
}

Web.config

<configuration>
<connectionStrings>
<add name="DBCS" connectionString="Data Source=.;database=Sample;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
</system.web>
</configuration>

我尝试通过在 Global.asax 的 Application_Error 方法中放置一个断点来进行调试,但控件从未到达该点。异常是由 Page_Load 事件触发的。Logger 类代码中没有编译错误。另外,我不想使用 customErrors 路由来解决这个问题。

提前致谢。

这是代码的链接: https://drive.google.com/folderview?id=0B5K22Q9r50wXU0VOQmJKVHBoaDg&usp=sharing

最佳答案

如果你有<customErrors mode="Off" /> 调试时,代码不会到达 Application_Error事件,因为异常立即显示在浏览器中。

如果你想在调试的时候到达Application_Error,你想要启用自定义错误——

<customErrors mode="On" defaultRedirect="~/Error.aspx" />

关于c# - Application_Error() 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38296561/

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