我有兴趣在我的asp.net应用程序中出现这两个异常中的任何一个时为ELMAH指定过滤器。
我在我的web.config中使用了以下内容,但它只过滤了无效的websresource请求,如果它被放置为第一个过滤器,但如果它被放置为第二个过滤器,则它不适用。配置文件'errorfilter'元素如下所示。如何在Web配置中指定这两个条件,是否需要使用BaseException.Message或Exception.Message?
<errorFilter>
<test>
<or>
<and>
<regex binding="Exception.Message" pattern="(?ix: \b potentially \b.+?\b
dangerous \b.+?\b value \b.+?\b detected \b.+?\b client \b )" />
</and>
</or>
<or>
<and>
<equal binding="BaseException.Message" value="This is an invalid webresource
request." type="String" />
</and>
</or>
</test>
</errorFilter>
答案 0 :(得分:2)
test
元素只能有一个子元素。由于您下面有两个or
条件,因此只会应用第一个条件。 或这两个条件的正确方法是将它们分组到or
下的test
元素下,如下所示:
<errorFilter>
<test>
<or>
<regex binding="Exception.Message"
pattern="(?ix: \b potentially \b.+?\b
dangerous \b.+?\b value \b.+?\b
detected \b.+?\b client \b )" />
<equal binding="BaseException.Message"
value="This is an invalid webresource request."
type="String" />
</or>
</test>
</errorFilter>