2011-07-19 93 views
1

我已經將此添加到global.asax頁面,以幫助我過濾掉登錄到elmah的錯誤,但只能過濾包含HttpRequestValidationException的任何異常錯誤。我收到來自McAfee掃描的這些錯誤。我想知道是否有辦法檢查IP地址,如果IP地址與McAfee相匹配,則不要記錄該錯誤。我試圖做:過濾器HttpRequestValidationException Elmah日誌IP地址

void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e) 
{ 
    if (Server.HtmlEncode(Request.UserHostAddress) == "173.15.183.122" 
     && e.Exception.GetBaseException() is HttpRequestValidationException) { 
     e.Dismiss(); 
    } 
} 

這不適合我。如果有一種方法可以獲取IP地址,請告訴我,以及我需要添加哪些名稱空間才能使其工作。

回答

2

我添加了這個到我的web.config文件來檢查某些IP地址,這將有助於篩選出我不想登錄數據庫的錯誤。

<elmah> 
    <errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="ELMAH.SQLite" /> 
    <security allowRemoteAccess="yes" /> 
    <errorFilter> 
     <test> 
     <and> 
      <equal binding="HttpStatusCode" value="500" type="Int32" /> 
      <regex binding="Context.Request.ServerVariables['REMOTE_ADDR']" pattern="((165.193.42.(6[7-9]|7[0-9]|8[0-6]|13[1-9]|14[0-9]|150))|(161.69.30.(13[6-9]|1[4-5][0-9]|16[0-7]))|(64.14.3.(196|21[4-9]|22[0-9]))|(64.41.168.(24[2-9]|25[0-4]))|(216.35.7.(9[8-9]|1[0-1][0-9]|12[0-6]))|(64.41.140.(9[8-9]|10[0-7]))|(161.69.14.(13[6-9]|1[4-5][0-9]|16[0-7])))$" type="String" /> 
     </and> 
     </test> 
    </errorFilter> 
</elmah>