kew*_*guy 7 sql-server asp.net-mvc elmah sql-server-2008-r2
我在测试DB中运行了ELMAH sql脚本(它创建了ELmah_Error表和3个存储过程),并使用Nuget在MVC应用程序中配置了ELMAH.
我按照指定修改了web.config,我可以将异常记录到
http://mysite/elmah.axd
Run Code Online (Sandbox Code Playgroud)
但是,我想将异常记录到Sql Server中.
我在下面添加了类来实现这一点
public class ElmahHandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
public override void OnException(System.Web.Mvc.ExceptionContext context)
{
LogException(e);
}
private static void LogException(Exception e)
{
// Call to Database and insert the exception info
}
}
Run Code Online (Sandbox Code Playgroud)
最后一步是:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new ElmahHandleErrorAttribute ());
}
Run Code Online (Sandbox Code Playgroud)
这是使用ELMAH记录所有异常的正确方法还是我错过了什么?
Pai*_*ook 11
完成数据库设置后,您需要做的就是将以下内容添加到<elmah>
web.config部分,以设置Elmah以登录SQL数据库:
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="<DBConnString>"
applicationName="<YourApp>"
</elmah>
Run Code Online (Sandbox Code Playgroud)
替换<DBConnString>
并<YourApp>
使用适当的配置值.
完成此操作后,您将无需使用自定义ElmahHandleErrorAttribute类.
我不确定你安装了哪个NuGet包,但是我建议使用Elmah.MVC包,因为它通过为你设置所有的ErrorHandler和ErrorFilters,将Elmah非常好地集成到MVC中.
归档时间: |
|
查看次数: |
5615 次 |
最近记录: |