【问题标题】:Adding Top-Level Exception Handling to an ASP.NET Web Application向 ASP.NET Web 应用程序添加顶级异常处理
【发布时间】:2013-11-21 22:40:15
【问题描述】:

我们公司正在迁移到基于 Ektron 的 C# 网站。我对C#语言只是依稀熟悉,之前没用过IIS。

我正试图弄清楚如何连接到异常处理机制。我想确保如果抛出异常但未被捕获,我可以发送电子邮件并重定向到错误页面。

据我所知,重要的文件是 web.config 和 global.asax。但据我所知,web.config 所能做的就是指定一个重定向 URL(而且我不知道如何恢复抛出的 Exception 对象中的信息)。而且我的项目甚至没有 global.asax 文件。 (我不确定是否需要创建它,或者它是否已被弃用,或者 Ektron 是否可以为我处理)。

【问题讨论】:

  • 这两个文件的作用如下:web.configglobal.asax。如果您想要全局异常处理,您可能希望在 global.asax 中添加一个Application_Error 处理程序(更多关于此here)。顺便说一句,您会发现使用 ASP.Net 的随意方法对您的服务很差。最好尽早获得完整的概述。
  • + 如您所问,是的,如果 global.asax 文件不存在,您将创建它(与 web.config 不同,它不必存在)。我想我们说的是普通的 ASP.NET,而不是 ASP.NET MVC 类型的网站
  • 我知道 Ektron 使用 Webforms,而不是 MVC。但是我需要自己创建 global.asax 文件吗?如果是这样,它会去哪里?
  • 如果你想使用 global.asax 的功能,那么你必须创建它。它进入主网站文件夹。您应该为此使用 Visual Studio,如果是这样,那么只需右键单击项目 > 添加 > 新项目,它应该在那里......(查找扩展名 - asax)

标签: c# exception-handling ektron


【解决方案1】:

在 Global.asax 中使用 Application_Error

【讨论】:

    【解决方案2】:

    参见“ASP.NET Health Monitoring Overview”。只需配置,您就可以安排它记录到事件日志、数据库或任何地方。

    【讨论】:

      【解决方案3】:

      我会使用ELMAH(ASP.NET 的错误记录模块和处理程序)来发送您的电子邮件。您可以通过NuGet Gallery 获取它,您所要做的就是在您的web.config 中添加几行。如果您通过 NuGet 安装,它甚至会负责更新您的 web.config。 Scott Hanselman 有一个blog post 关于如何实现它。这篇文章有点过时了(2009 年 4 月),但在此过程中 ELMAH 并没有太大的变化。

      为了重定向到错误页面,我会使用内置的 ASP.NET custom error pages

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-10
        • 1970-01-01
        • 2011-04-11
        • 1970-01-01
        • 2012-06-08
        • 2018-12-10
        • 2017-02-01
        相关资源
        最近更新 更多