1

问:

当我询问有关异常处理的问题时,我发现许多有关如何处理异常的文章:

我的问题分为三个部分:

1- 我读到了ELMAH-错误记录模块和处理程序。

通过thisthis两篇文章。但它对我不起作用,虽然它的配置简单。黄色的死屏仍然出现在我身上!。

笔记:

  • 我在开发环境中本地尝试代码,而不是在生产环境中。

  • 我很困惑/admin/elmah.axd,它是否存在于物理上。

  • 我使用 Web 应用程序而不是网站。和 .net 3.5


2- 是ELMAH最好的选择还是我应该使用Health Monitoring?或者我可以同时使用吗?


3-如果我使用ELMAH,这就足够了,我不再需要错误文件夹和自定义错误了。?

4

4 回答 4

1

ELMAH 比健康监测更强大。如果您有 ELMAH,则不需要健康监测。

您仍然需要一个自定义错误页面,以向最终用户显示一个漂亮的页面。我不知道您所说的“错误文件夹”是什么意思,但您不需要它。

您遇到的任何问题都可能在这里得到解答: 在 ASP.NET MVC 项目中访问 elmah.axd 时出现“找不到资源”错误

于 2011-07-11T17:44:43.863 回答
1

我对 ELMAH 的理解是,它是一种捕获您的应用程序可能丢失的错误并允许您稍后查看它们的方法。因此,如果您希望您的用户看到的不是黄屏死机,您仍然需要自定义错误页面。

/admin/elmah.axd是一个 HttpHandler,它在磁盘上没有物理文件,而是为您提供了一个管理控制台,用于显示 ELMAH 捕获的错误。

我没有使用过健康监测,所以我不能直接与它交谈。我想说使用最容易使用的工具,并提供您需要的所有信息。您可能会同时使用这两种方法,看看其中一种是否比另一种更适合您的需求(尽管我不知道他们是否会互相踩踏)。

于 2011-07-11T17:49:58.333 回答
1

如果您无法成功配置 ELMAH 或希望对错误处理\日志有更多控制权,您可能需要考虑创建自定义错误处理模块,这非常简单。在这里,您可以找到带有示例代码的不错的教程。

于 2011-07-11T17:56:10.867 回答
1

使用 Health Monitoring 的一个优点是您可以记录 System.Web.Management 命名空间中的任何事件,而不仅仅是运行时错误。

这意味着您还可以记录其他事件,例如配置错误、应用程序重新启动、失败和成功的安全事件等等。

编辑 - 因为以下内容太长,无法发表评论

Health Monitoring 是 .NET 框架的一部分,通过 System.Web.Management 命名空间中的类,您可以记录与应用程序的几乎所有方面相关的事件。另一方面,ELMAH 是一个插件,它本身使用 .NET 框架中的各种类进行日志记录。

这意味着您无法直接比较两者。您必须将 ELMAH 与使用 System.Web.Management 进行日志记录的第三方插件进行比较(例如 Spot a fault - 我目前使用的那个)。

To set up and use such a plugin is pretty straight forward. To create your own Health Monitoring based logging setup is a bit harder as documentation is a bit thin, but with a bit of time to spend, should cause no problem.

于 2011-07-12T09:10:56.753 回答