首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止Elmah伐木?

如何阻止Elmah伐木?
EN

Stack Overflow用户
提问于 2014-08-19 21:20:37
回答 2查看 6.5K关注 0票数 6

我正在使用Elmah.MVC 2与MVC3,ASP.NET 4.5在Azure网站上。

我已经将其设置为通过web.config登录到set服务器上的XML文件。这一切都有效。但是,我想暂时停止它,因为我认为它可能会减慢web服务器的速度,因为它占用了编写这些错误文件的时间。我计划登录到Server。但现在我得阻止Elmah。

我的Web.config Elmah部分是:

代码语言:javascript
复制
    <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>

代码语言:javascript
复制
<add key="elmah.mvc.disableHandler" value="true" />
<add key="elmah.mvc.disableHandleErrorFilter" value="false" />
<add key="elmah.mvc.requiresAuthentication" value="true" />
<add key="elmah.mvc.IgnoreDefaultRoute" value="false" />
<add key="elmah.mvc.allowedRoles" value="Admin" />
<add key="elmah.mvc.allowedUsers" value="Admin" />
<add key="elmah.mvc.route" value="elmah" />

代码语言:javascript
复制
<httpModules>
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
  <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>

代码语言:javascript
复制
<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>

代码语言:javascript
复制
  <elmah>
    <security allowRemoteAccess="yes" />
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="myDatabaseCS" />
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
    </elmah>
</configuration>

我以为这句话就停止了:

代码语言:javascript
复制
    <add key="elmah.mvc.disableHandler" value="true" />

但遗憾的是。然而,我无法到达Elmah页面,ie /Elmah只是将我返回到登录页面。

我怎么才能阻止Elmah伐木?

谢谢。

编辑1:

在Global.asa中,这可能与此有关:

代码语言:javascript
复制
//filters.Add(new ElmahHandledErrorLoggerFilter());
filters.Add(new HandleErrorAttribute());

THe第一行被注释掉了,因为我不认为它在V2中是必需的。我相信,所有错误处理现在都与Elmah合并了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-19 22:29:58

只需从<errorLog>部分中删除<elmah>元素即可。或者评论一下。这将禁用日志记录功能,当您想要恢复功能时,只需再次添加这些<errorLog>元素即可恢复功能。这样,您就不必删除任何可能导致问题的核心Elmah组件,特别是当您想要恢复功能时。

票数 13
EN

Stack Overflow用户

发布于 2016-08-09 17:04:35

注意-从<elmah>中删除web.config并不会停止日志记录,它只是将其恢复为this SO answer中描述的内存中的日志记录。(由于代表不足,无法对已接受的答案发表评论)

如果目的是完全停止日志记录,您可以使用Elmah的ErrorFilterModule (假设它是在web.config中添加的),如下所示(global.asax.cs摘录):

代码语言:javascript
复制
protected void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e)
{
    e.Dismiss();
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25393171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档