我正在使用Elmah.MVC 2与MVC3,ASP.NET 4.5在Azure网站上。
我已经将其设置为通过web.config登录到set服务器上的XML文件。这一切都有效。但是,我想暂时停止它,因为我认为它可能会减慢web服务器的速度,因为它占用了编写这些错误文件的时间。我计划登录到Server。但现在我得阻止Elmah。
我的Web.config Elmah部分是:
<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>和
<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" />
和
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
和
<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>和
<elmah>
<security allowRemoteAccess="yes" />
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="myDatabaseCS" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>
</configuration>我以为这句话就停止了:
<add key="elmah.mvc.disableHandler" value="true" />但遗憾的是。然而,我无法到达Elmah页面,ie /Elmah只是将我返回到登录页面。
我怎么才能阻止Elmah伐木?
谢谢。
编辑1:
在Global.asa中,这可能与此有关:
//filters.Add(new ElmahHandledErrorLoggerFilter());
filters.Add(new HandleErrorAttribute());THe第一行被注释掉了,因为我不认为它在V2中是必需的。我相信,所有错误处理现在都与Elmah合并了。
发布于 2014-08-19 22:29:58
只需从<errorLog>部分中删除<elmah>元素即可。或者评论一下。这将禁用日志记录功能,当您想要恢复功能时,只需再次添加这些<errorLog>元素即可恢复功能。这样,您就不必删除任何可能导致问题的核心Elmah组件,特别是当您想要恢复功能时。
发布于 2016-08-09 17:04:35
注意-从<elmah>中删除web.config并不会停止日志记录,它只是将其恢复为this SO answer中描述的内存中的日志记录。(由于代表不足,无法对已接受的答案发表评论)
如果目的是完全停止日志记录,您可以使用Elmah的ErrorFilterModule (假设它是在web.config中添加的),如下所示(global.asax.cs摘录):
protected void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e)
{
e.Dismiss();
}https://stackoverflow.com/questions/25393171
复制相似问题