2009-05-31 1 views
1

404에 대한 첫 번째 바인딩이 작동하므로 ErrorFilterModule이 제대로 설정되었지만 jscript 섹션이 전혀 작동하지 않는 것 같습니다. HttpRequestValidationException은 여전히 ​​보고서 메일로 전송 중입니다. 하나 개 이상의 조건, 당신이 당신의 예에서이 방법이있을 때엘마 1.1 RC에서 jscript 어설 션을 사용하여 예외 유형을 필터링 할 수 있습니까?

<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> 

답변

4

은 (<equal> 다음 <jscript>) 다음 중 하나에 ELMAH 및 그 또는 OR 그들에게 말할 필요가있다. 해결 방법은 논리적으로 조건을 결합 할 방법에 따라 <and> 또는 <or>을 사용하는 것입니다. 다음, 나는 에드 또는이 두 그래서 두 조건이 적용될 수 있습니다 :

당신은 다음 첫 번째 사람이 사용하는 논리적 ( <and> 또는 <or>) 조합과 직접 <test>에서 여러 조건을
<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> 

<jscript> 사람은 방치되고 있었습니까?

+0

안녕하세요. 에 대한 정보를 제공해 주셔서 감사합니다. BaseException-filters는 여전히 작동하지 않는 방법을 수행합니다. HttpRequestValidationException은 Elmah에 의해 여전히 위의 코드로보고됩니다. – jesperlind

+0

그건 내 잘못 이었어. 이 예에서는 요소가 누락되어 있으며 전체 JScript 코드를 래핑해야합니다. –

+0

훌륭함, 이제 작동 중! 이걸 도와 주셔서 대단히 감사합니다. – jesperlind

관련 문제