c#-Elmah不过滤/感知Web API上的错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-Elmah不过滤/感知Web API上的错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2105字,纯文字阅读大概需要4分钟。
内容图文
![c#-Elmah不过滤/感知Web API上的错误](/upload/InfoBanner/zyjiaocheng/684/63258167b77f4ea0bb4cf98a28a7ec63.jpg)
我有一个配置了Elmah并可以正常工作的Web Api应用程序,日志正常创建.
为了从日志中隐藏/删除敏感数据,我尝试了this,但不适用于Web Api控制器.仅当MVC管道中发生错误(项目中有MVC和Web API控制器)时,才单击过滤器.
我也检查了this问题,但我的配置文件似乎还可以:
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
[...]
<location path="." inheritInChildApplications="false">
<system.web>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
[..]
</system.web>
</location>
[...]
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
</system.webServer>
Global.asax中的过滤器:
public void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
var ctx = e.Context as HttpContext;
if (ctx == null) return;
ElmahDataFilter.Apply(e, ctx);
}
作为附加信息,如果我评论system.web> httpModules部分,则仍在正常创建日志.
解决方法:
ELMAH不会立即记录由ASP.NET Web API生成的错误.您还需要安装Elmah.Contrib.WebApi软件包:
Install-Package Elmah.Contrib.WebApi
然后在WebApiConfig.cs中配置Web API以将ELMAH用作异常记录器:
config.Services.Add(typeof(IExceptionLogger), new ElmahExceptionLogger());
有关更多信息,请查看我编写的指南Logging to ELMAH from Web API.在本教程中,您可能需要使用ELMAH替换elmah.io软件包,因为您可能正在使用其他错误记录器之一.
我刚刚确认安装这些软件包实际上会触发您添加到问题中的ErrorLog_Filtering代码.
内容总结
以上是互联网集市为您收集整理的c#-Elmah不过滤/感知Web API上的错误全部内容,希望文章能够帮你解决c#-Elmah不过滤/感知Web API上的错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。