Javascript 如何使用jscript断言过滤Elmah 1.1 RC中的异常类型?
针对404的第一个绑定可以正常工作,因此我正确设置了ErrorFilterModule,但jscript部分似乎根本不起作用。HttpRequestValidationException仍在报告邮件中发送Javascript 如何使用jscript断言过滤Elmah 1.1 RC中的异常类型?,javascript,exception,filter,elmah,Javascript,Exception,Filter,Elmah,针对404的第一个绑定可以正常工作,因此我正确设置了ErrorFilterModule,但jscript部分似乎根本不起作用。HttpRequestValidationException仍在报告邮件中发送 <errorFilter> <test> <equal binding="HttpStatusCode" value="404" type="Int32" /> <jscript> <![CDATA[
<errorFilter>
<test>
<equal binding="HttpStatusCode" value="404" type="Int32" />
<jscript>
<![CDATA[
// @assembly mscorlib
// @assembly System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// @import System.IO
// @import System.Web
HttpStatusCode == 404
|| BaseException instanceof FileNotFoundException
|| BaseException instanceof HttpRequestValidationException
|| BaseException instanceof HttpException
/* Using RegExp below (see http://msdn.microsoft.com/en-us/library/h6e2eb7w.aspx) */
|| Context.Request.UserAgent.match(/crawler/i)
|| Context.Request.ServerVariables['REMOTE_ADDR'] == '127.0.0.1' // IPv4 only
]]>
</jscript>
</test>
</errorFilter>
当您有一个以上的条件时,就像您在示例中的情况一样(
然后
),您需要告诉ELMAH和他们或他们中的任何一个。解决方案是使用
或
,具体取决于您希望如何逻辑组合这些条件。在下文中,我已对这两个条件进行了修改,以便其中一个条件适用:
<errorFilter>
<test>
<or>
<equal binding="HttpStatusCode" value="404" type="Int32" />
<jscript>
<expression><![CDATA[
// @assembly mscorlib
// @assembly System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// @import System.IO
// @import System.Web
HttpStatusCode == 404
|| BaseException instanceof FileNotFoundException
|| BaseException instanceof HttpRequestValidationException
|| BaseException instanceof HttpException
/* Using RegExp below (see http://msdn.microsoft.com/en-us/library/h6e2eb7w.aspx) */
|| Context.Request.UserAgent.match(/crawler/i)
|| Context.Request.ServerVariables['REMOTE_ADDR'] == '127.0.0.1' // IPv4 only
]]></expression>
</jscript>
</or>
</test>
</errorFilter>
如果直接在
下有多个条件,且没有逻辑(
或
)组合,则只使用第一个条件,这就是为什么您的
条件被忽略的原因。您好,谢谢您提供有关的信息。BaseException过滤器确实仍然不起作用。HttpRequestValidationException仍然由Elmah使用上面的代码报告。这是我的错误。这个例子缺少元素,整个JScript代码应该被包装起来。太好了,现在它可以工作了!非常感谢你在这方面的帮助。