19

我是 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”软件包以获得他们可能为我带来的任何漂亮改进?

4

2 回答 2

24

ELMAH - 这是默认的 ELMAH 包,其中没有特定于 mvc 的代码,如果您不执行此处描述的操作,我不相信 ELMAH 会记录您的控制器中发生的任何错误,并且您可能无法访问ELMAH 日志页面

Elmah.Contrib.Mvc - 这是对 ELMAH 的增强,专门针对 MVC,基于 ELMAHS 的创建者之一对堆栈溢出问题的回答。

Elmah.MVC - This is simliar to the above package however I believe it provides much better support for mvc features like routes etc, It is also quite easy to install and configure, it removes a lot of the messing around you would have to do with ELMAH to take out various parts that arent required when running in a mvc project

You can read the authors posts to get a better idea of how it works:

Personally I believe the last package would be the best one ot use, it seems to be the more up to date and maintained of the two mvc ones.

于 2013-03-23T04:52:25.907 回答
2

您可以考虑使用 Elfar 而不是 Elmah。Elfar 受到 Elmah 的“启发”,但被设计为特定于 MVC 并且配置非常简单。

只需打开 NuGet,然后搜索 Elfar。您会发现许多不同的软件包,但一般来说,您需要一个符合您所使用的技术的软件包。我不熟悉 Azure Web 角色,但如果您可以访问标准 Sql Server,那么您可以简单地使用 Elfar.SqlClient。

更多信息在这里:

https://github.com/stevenbey/elfar/wiki

于 2013-03-23T02:55:05.480 回答