我认为我得到的错误是由机器人引起的:
以下是一些错误:
404
;输入:Http
;错误:A public action method 'IPC$' was not found on controller ...
0
;输入:InvalidOperation
;错误:The requested resource can only be accessed via SSL.
以前存在的特定网址存在其他错误,但此后已被删除。
有没有办法阻止僵尸程序点击这些链接,还是我必须通过过滤出ELMAH中的特定请求来解决这个问题?
答案 0 :(得分:1)
不幸的是,由于那里的机器人数量以及编码攻击或抓取您网站的各种方式,您将无法阻止所有这些错误。但是,您可以轻松选择忽略Elmah中特定类型的错误。以下是web.config文件的<elmah>
部分中的过滤器示例:
<errorFilter>
<test>
<or>
<and>
<!-- filter all errors out that fall in the range 400-499 -->
<greater binding="HttpStatusCode" value="399" type="Int32" />
<lesser binding="HttpStatusCode" value="500" type="Int32" />
</and>
<regex binding="BaseException.Message" pattern="A potentially dangerous \b.+?\b value was detected from the client" caseSensitive="false" />
<regex binding="BaseException.Message" pattern="he provided anti-forgery token was meant for user" caseSensitive="false" />
</or>
</test>
</errorFilter>
这将过滤掉所有404等,仅包括小于400或大于499的错误,并排除一些通常由恶意机器人触发的特定.NET异常。从那里,你可以调整以适应......