2016-10-10 58 views
0

ELMAH ELMAH正則表達式REMOTE_ADDR濾波器產生類似下面的異常:不工作

System.Web.HttpException:控制器的路徑「/經理/」不是 找到或未實施IController。

而從瀏覽器將是不存在的URL生成一個典型的IIS 404

的資源不能被發現。說明:HTTP 404.可能已刪除 正在查找的資源(或其某個依賴項), 的名稱已更改或暫時不可用。請查看 以下網址並確保其拼寫正確。

請求的URL:/經理

我知道訪問這些地址的過程是無害的,並要停止接收來自一個IP地址範圍生成這些特定的電子郵件。這是我在web.config中的,但ELMAH電子郵件仍然通過。

URL過濾器似乎工作正常。

 <elmah> 
     <security allowRemoteAccess="false" /> 
     <errorMail from="[email protected]" to="[email protected]" async="true" smtpServer="mail.mydomain.com" smtpPort="25" useSsl="false" /> 
     <errorFilter> 
      <test> 
      <and> 
       <equal binding="HttpStatusCode" value="500" type="Int32" /> 
       <or> 
       <!--TrustWave scans our website with intentional bad addresses--> 
       <regex binding="Context.Request.ServerVariables['REMOTE_ADDR']" pattern="64.37.231.\d{1,3}" type="String" /> 

       <!--Google looking for Digital Asset Links - well known statements the website wants to make--> 
       <regex binding="Context.Request.ServerVariables['URL']" pattern="/.well-known/assetlinks.json" type="String" /> 

       <!--Apple devices searching for universal links - app-site association. we dont have an app.--> 
       <regex binding="Context.Request.ServerVariables['URL']" pattern="/.well-known/apple-app-site-association" type="String" />    
       </or> 
      </and> 
      </test> 
     </errorFilter> 
     </elmah> 

回答

0

即使ELMAH電子郵件看起來像發生了500錯誤,在web.config真正需要的過濾工作404錯誤代碼。

<equal binding="HttpStatusCode" value="404" type="Int32" />

,而不是

<equal binding="HttpStatusCode" value="500" type="Int32" />