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