sql-server – 使用SQL SERVER 2008 R2的ASP.NET MVC 4的ELMAH

前端之家收集整理的这篇文章主要介绍了sql-server – 使用SQL SERVER 2008 R2的ASP.NET MVC 4的ELMAH前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在测试DB中运行了ELMAH sql脚本(它创建了ELmah_Error表和3个存储过程),并使用Nuget在MVC应用程序中配置了ELMAH.

我按照指定修改了web.config,我可以将异常记录到

  1. http://mysite/elmah.axd

但是,我想将异常记录到sql Server中.

我在下面添加了类来实现它

  1. public class ElmahHandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
  2. {
  3. public override void OnException(System.Web.Mvc.ExceptionContext context)
  4. {
  5. LogException(e);
  6. }
  7. private static void LogException(Exception e)
  8. {
  9. // Call to Database and insert the exception info
  10. }
  11. }

最后一步是:

  1. public static void RegisterGlobalFilters(GlobalFilterCollection filters)
  2. {
  3. filters.Add(new ElmahHandleErrorAttribute ());
  4. }

这是使用ELMAH记录所有异常的正确方法还是我错过了什么?

解决方法

完成数据库设置后,您需要做的就是将以下内容添加到< elmah>在你的web.config中设置Elmah以登录sql数据库
  1. <elmah>
  2. <errorLog type="Elmah.sqlErrorLog,Elmah" connectionStringName="<DBConnString>"
  3. applicationName="<YourApp>"
  4. </elmah>

替换< DBConnString>和< YourApp>具有适当的配置值.

完成此操作后,您将无需使用自定义ElmahHandleErrorAttribute类.

我不确定你安装了哪个NuGet软件包,但是我建议使用Elmah.MVC软件包,因为它通过为你设置所有的ErrorHandler和ErrorFilters,将Elmah非常好地集成到MVC中.

猜你在找的MsSQL相关文章