Pregunta

Estoy utilizando Elmah para iniciar sesión en un proyecto ASP.NET MVC y estoy recibiendo un montón de errores 404 para un /prx2.php camino que a su vez está pasando a un hash como un parámetro de cadena de consulta.

Asumo que esto es un escáner tratando de encontrar vulnerabilidades. Porque yo no estoy corriendo PHP estoy seguro! Sin embargo, me gustaría dejar de ELMAH informar de este error.

¿Cuál es la mejor manera de excluir estos tipos de errores de ser la presentación de informes sin tener que crear una página /prx2.php. También me gustaría hacer esto en un archivo de configuración en lugar de hacerlo progmatically.

¿Alguna idea?

¿Fue útil?

Solución

Elmah admite el filtrado de error - error de filtrado de enlace

Esto debería resolver el problema para usted. Usted puede definir su filtro a través del código - en el archivo Global.asx, o dentro de la configuración XML para ELMAH sí

Otros consejos

Paso 1: Configurar secciones de configuración para incluir ELMAH sección errorFilter:

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

Paso 2:. Configurar el filtro en sí en la sección <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>    

Paso 3: Incluir el Elmah.ErrorFilterModule dentro de sus módulos de aplicación

Modern (IIS7 +) versión del módulo incluyendo http:

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

Legacy (IIS mayores) versión del módulo incluyendo http:

<system.web>
  <httpModules>
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
  </httpModules>
</system.web>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top