Elmah.MVC 与 Elmah.contrib.Mvc
Posted
技术标签:
【中文标题】Elmah.MVC 与 Elmah.contrib.Mvc【英文标题】:Elmah.MVC vs. Elmah.contrib.Mvc 【发布时间】:2013-03-12 22:27:02 【问题描述】:我是 ASP.NET MVC 的新手,我正在寻找最不痛苦的方法来设置全局错误处理、日志记录和报告(通过电子邮件)。仅供参考,我的 ASP.NET MVC 应用程序在 Azure 中作为 Web 角色托管,但我试图避免使用任何 Azure 特定的挂钩。
看起来安装和配置 ELMAH 是很好的第一步。
当我查看 NuGet 时,我看到:
ELMAH(“ELMAH 带有初始配置,可快速入门...”) Elmah.Contrib.Mvc(“...旨在为 MVC 项目添加易用性...”) Elmah.MVC(“...无痛集成到 MVC...”)我想安装哪些软件包?
编辑:经过一些实验,我更加困惑。在默认 MVC 4 应用程序之上安装三个选项后,我比较了项目文件。似乎 Elmah.Contrib.Mvc 和 Elmah.MVC 都没有添加 elmah.1.2.2 包(我在安装基本 ELMAH 时得到)。此外,这两个包都没有将 <elmah>
部分添加到 Web.config。
那么...我是否需要先安装 ELMAH,然后安装其中一个“...MVC”包以获得他们可能为我带来的任何漂亮改进?
【问题讨论】:
【参考方案1】:ELMAH - 这是默认的 ELMAH 包,其中没有特定于 mvc 的代码,如果您不执行here 所描述的操作,我不相信 ELMAH 会记录您的控制器中发生的任何错误,并且您可能无法访问 ELMAH 日志页面
Elmah.Contrib.Mvc - 这是基于 ELMAHS 的创建者之一对 stack overflow question 的回答而专门针对 MVC 对 ELMAH 的增强。
Elmah.MVC - 这与上面的包类似,但是我相信它为路由等 mvc 特性提供了更好的支持,它也很容易安装和配置,它消除了你周围的很多麻烦与 ELMAH 一起取出在 mvc 项目中运行时不需要的各个部分
您可以阅读作者的帖子以更好地了解其工作原理:
Integrating ELMAH to ASP.NET MVC in right way ELMAH MVC controller released on NuGet ELMAH.MVC v.2.0.0 - Release Candidate我个人认为最后一个包是最好的,它似乎是两个 mvc 包中更新和维护的。
【讨论】:
谢谢丹尼尔。我很快发现的一件事是 ELMAH 软件包开箱即用效果很好。我安装了它,找出了 HandleErrorAttribute (***.com/questions/766610/…) 所需的修改,它就可以工作了。我在<elmah>
部分添加了一个<errorMail>
部分,并且,bada bing,bada boom,当检测到错误时,我的网站会向我发送电子邮件。
我同意 ELMAH.MVC 的建议,我在这个项目中将 Elamh 集成到我的 MVC 站点中是非常幸运的。
谢谢,Elmah.MVC 非常适合我。一些更有用的 URL:配置 Elmah.MVC:github.com/alexbeletsky/elmah-mvc 并设置 Elmah.MVC 以使用 MSSQL 而不是内存来存储错误:andyfrench.info/2014/07/…
Elmah.Mvc 是使用 MVC 的方式,这太容易了。【参考方案2】:
您可以考虑使用 Elfar 代替 Elmah。 Elfar 受到 Elmah 的“启发”,但被设计为特定于 MVC 并且配置非常简单。
只需打开 NuGet,然后搜索 Elfar。您会发现许多不同的软件包,但一般来说,您需要一个符合您所测试使用的技术的软件包。我不熟悉 Azure Web 角色,但如果您可以访问标准 Sql Server,那么您可以简单地使用 Elfar.SqlClient。
更多信息在这里:
https://github.com/stevenbey/elfar/wiki
【讨论】:
github 页面非常稀疏。 sourceforge 页面 (sourceforge.net/p/elfar/wiki/Home) 包含文档链接(例如)。 @Bob.at.SBS sourceforge 已经过时了。 Github 是当前的东西。 @DanielPowell - 如果你想从源代码重建它,你当然可以自定义它。以上是关于Elmah.MVC 与 Elmah.contrib.Mvc的主要内容,如果未能解决你的问题,请参考以下文章
为啥会收到奇怪的错误消息 asp.net mvc "elmah.mvc logging library"?
通过 Live 应用程序上的 Web 界面查看 ELMAH 日志 [重复]