问:
当我询问有关异常处理的问题时,我发现很多关于如何处理异常的文章:
我的问题有三个部分:
1-我读到了ELMAH
- 错误记录模块和处理程序。
通过两篇文章this和this。但它不适用于我,虽然配置简单。黄色死亡屏幕仍然出现在我身上!
备注:
我在开发环境中本地尝试不在的代码 生产环境。
我对/admin/elmah.axd
感到困惑,是否存在于身体或身体上
不
我使用网络应用程序而非网站。和.net 3.5
2- ELMAH
是最佳选择还是我应该使用Health Monitoring
?或者我可以同时使用这两者吗?
3-如果我使用ELMAH
,这是否足够了,我不再需要错误文件夹和自定义错误了。?
答案 0 :(得分:1)
ELMAH比健康监测更强大。如果您有ELMAH,则不需要健康监测。
您仍然需要一个自定义错误页面,以向最终用户显示漂亮的页面。我不知道“错误文件夹”是什么意思,但你不需要它。
您遇到的任何问题都可能在这里得到解答: "Resource not found" error while accessing elmah.axd in ASP.NET MVC project
答案 1 :(得分:1)
我对ELMAH的理解是,它是一种捕获应用程序可能遗漏的错误的方法,并允许您稍后查看它们。因此,如果您希望用户看到黄色死亡屏幕以外的其他内容,您仍然需要自定义错误页面。
/admin/elmah.axd
是一个HttpHandler,它在磁盘上没有物理文件,而是为您提供了ELMAH捕获的错误的管理控制台。
我没有使用健康监测,所以我不能直接对它说话。我会说使用最容易使用的工具,并提供您需要的所有信息。您可以暂时使用它们,看看一个是否比另一个更适合您的需求(虽然我不知道它们是否可以相互踩踏)。
答案 2 :(得分:1)
如果您无法成功配置ELMAH或希望对错误的hadling \ logging有更多控制权,那么您可能需要考虑创建自定义错误处理模块,这非常简单。 Here你可以找到一个包含示例代码的精彩教程。
答案 3 :(得分:1)
使用运行状况监视的一个优点是,您可以从System.Web.Management命名空间记录任何事件,而不仅仅是运行时错误。
这意味着您还可以记录其他事件,例如配置错误,应用程序重启,失败和成功的安全事件等。
编辑 - 以下是评论的长期
Health Monitoring是.NET框架的一部分,通过System.Web.Management命名空间中的类,您可以记录与应用程序的所有方面相关的事件。 另一方面,ELMAH是一个插件,它本身使用.NET框架中的各种类来进行日志记录。
这意味着你无法直接比较两者。您必须将ELMAH与使用System.Web.Management进行日志记录的第三方插件(例如Spot a fault - 我目前使用的那个)进行比较。
设置和使用这样的插件非常简单。创建自己的基于运行状况监视的日志记录设置有点困难,因为文档有点薄,但是花一点时间花费,应该没有问题。