2016-10-10 7 views
0

ELMAH генерирует исключение, как показано ниже, когда известный процесс посещает, не существующий URL на нашем сайте:ELMAH регулярного выражения REMOTE_ADDR фильтр не работает

System.Web.HttpException: Контроллер для пути «/ менеджера /» не был нашел или не реализует IController.

Принимая во внимание, что будет несуществующий URL из браузера создает типичный IIS 404.

Ресурс не может быть найден. Описание: HTTP 404. Ресурс, который вы искали (или одна из его зависимостей), мог быть удален, изменил свое имя или временно недоступен. Прочитайте следующий URL-адрес и убедитесь, что оно написано правильно.

Запрошенный 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" />