【发布时间】:2012-09-06 21:24:59
【问题描述】:
背景
我在我的 MVC Web 应用程序中设置了 [HandleError] 用于异常处理,但后来它无法处理一些异常,因此建议我继续使用替代 Application_Error (my SO Post) 我也最终使用ELMAH 似乎更好。
嗯,ELMAH 摇滚!但我无法找到如何显示格式化异常(就像我对 Application_Error 所做的那样)
ELMAH v/s Application_Error
ELMAH - 提供(几乎)开箱即用的异常记录和电子邮件等其他功能。它完全依赖于 web.config 和它需要的一堆文件。能够在 xml / 数据库(如配置)中记录异常,并且能够发送电子邮件、rss 等。提供一个页面,用户可以在其中查看完整的异常日志和详细信息。
优点:出错时不显示格式化异常。使 web.config 有点笨重。 ELMAH 文件集为 2.8mb(大于 我的整个网络应用 zip 大小的两倍)。无法格式化错误/电子邮件。它是依赖的 在 System.Data.SQLite.dll 上,它依赖于 CPU 架构(x64 或 x86) SO post
Application_Error - 捕获所有异常,我们能够引导用户显示格式化错误。我们控制显示和通过电子邮件发送的内容。完全托管的代码(不依赖 CPU)没有额外的 web.config 设置。没有额外的 dll。
优点:没有隐式异常日志记录(我们需要编码)。没有日志查看器 像ELMAH。电子邮件、日志记录 - 我们必须管理所有内容。
结论: 首先,请告诉我 ELMAH 是否可以“完全”替换我的 Application_Error。此外,我没有找到太多关于如何配置使用 ELMAH 显示/通过电子邮件发送的错误消息。或者它们是否必须共存 (Application_Error 显示格式化错误,ELMAH 显示几乎所有其他内容)
请提出建议并分享您的经验。
【问题讨论】:
标签: asp.net-mvc-3 exception-handling elmah error-logging application-error