Вопрос

Я использую Elmah для входа в проект ASP.NET MVC и получаю множество ошибок 404 для пути /prx2.php, который, в свою очередь, передает хэш в качестве параметра строки запроса.

Я предполагаю, что это сканер, пытающийся найти уязвимости.Поскольку я не использую PHP, я в безопасности!Однако я хотел бы, чтобы ELmah не сообщал об этой ошибке.

Каков наилучший способ исключить подобные ошибки из отчетов без фактического создания страницы /prx2.php?Я также хотел бы сделать это в файле конфигурации, а не делать это программно.

Есть идеи?

Это было полезно?

Решение

Elmah поддерживает фильтрацию ошибок – Ссылка на фильтрацию ошибок

Это должно решить проблему для вас.Вы можете определить свой фильтр с помощью кода — в файле Global.asx или в конфигурации xml для самого elmah.

Другие советы

Шаг 1:Настройте разделы конфигурации для включения elmah errorFilter раздел:

<configSections>
  <sectionGroup name="elmah">
    <!-- ... -->  
    <!-- this is the important part -->
    <section name="errorFilter" requirePermission="false" 
      type="Elmah.ErrorFilterSectionHandler, Elmah"/>
  </sectionGroup>
</configSections>

Шаг 2:Настройте сам фильтр в <elmah> раздел.

<elmah>
  <!-- ... -->
  <errorFilter>
    <test>
      <and>
        <equal binding="HttpStatusCode" value="404" type="Int32" />
        <!-- you may want to consider something more generic like pattern="/.+[.]php" -->
        <regex binding="Context.Request.Url" pattern="/prx2.php" />
      </and>
    </test>
  </errorFilter>
</elmah>    

Шаг 3:Включите Elmah.ErrorFilterModule внутри модулей вашего приложения

Современная (IIS7+) версия, включающая http-модуль:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <!-- ... -->
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" 
      preCondition="managedHandler" />
  </modules>
</system.webServer>

Устаревшая (старая) версия IIS, включающая http-модуль:

<system.web>
  <httpModules>
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
  </httpModules>
</system.web>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top