Pregunta

No encuentro para ser fácil de configurar este; o bien hay un paso que falta en la configuración de la instalación, no se funciona correctamente, o no entienden realmente su propósito. Hay algo definitivamente mal aquí. El problema me tiene que ser obviamente. Yo no estoy poniendo esto funcione. Esto es lo que he hecho.

Crear una nueva aplicación MVC. Colocado el siguiente en la página About.aspx.     

        <% Arrojar nueva Excepción ( "bla"); %>         Colocar contenido.     

Hit la página obtener la pantalla de color amarillo con la excepción.

Añadir elmah.dll al directorio bin.

Agregue a los configurationSections del archivo Web.config:

<sectionGroup name="elmah">
  <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
  <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
  <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
  <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>

Agregue a los httpHandlers sección lo siguiente:

<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />

Añadir a la sección de módulos:

<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>

Añadir a la sección de controlador:

<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" preCondition="integratedMode" type="Elmah.ErrorLogPageFactory, Elmah"/>

Añadir una sección ELMAH:

<elmah>
  <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>

Lo curioso aquí es que la parte ".XmlFileErrorLog" de esa cadena aparece roja como un error de ReSharper que indica que "no se puede resolver el símbolo '.ctor'", que cuando miro a la elmah.dll en esta muestra Reflector objeto que requiere ya sea una "cadena" o un "IDicationary" en cualquiera de los dos constructores públicos.

Estoy utilizando Windows Vista x64 con VS 2008. conjunto de permisos en el App_Data a todos como Co_Owner.

El http: // localhost: xxxx / elmah.axd viene y no muestra ningún error . Cuando llegué a mi pantalla amarilla "Acerca de" de nuevo Todavía veo y elmah.axd todavía no muestra errores de la carpeta App_Data.

Me sustituyan los customErrors con y creé página asociada:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm" />

Las páginas personalizados espectáculos, pero todavía elmah.axd muestra "Sin errores". App_Data sigue vacía!

Como fuente para comenzar esta configuración utilicé: code.google.com/p/elmah/wiki/MVC

Entonces, ¿dónde estoy en mal estado en?

~ - = Mike = - ~

¿Fue útil?

Solución

Comprobar si ErrorLogModule está presente tanto en configuration/system.web/httpModules (utilizado si usted está en desarrollo Web Server) y configuration/system.webServer/modules (utilizado por IIS 7). Aquí está el fragmento de web.config del proyecto, actualmente estoy trabajando en:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <httpModules>
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
        </httpModules>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="ErrorLog" />
            <remove name="ErrorMail" />
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
        </modules>
    </system.webServer>
</configuration>

Espero que esto ayude

Otros consejos

Trate de retirar esta sección:

<elmah>
  <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>

Esto significa que Elmah está configurado para que sólo tiene que utilizar el valor por defecto de registro en memoria. Esta ayuda de solución de problemas, ya que sabe que no es una cosa de permisos de archivo. Así que una vez que lo tienes trabajando con el registro en memoria a continuación, puede configurarlo para conectarse a un archivo XML.

También es posible que desee echa un vistazo a esta pregunta StackOverflow, Como llegar ELMAH trabajar con ASP.NET MVC [HandleError] atribuir? , que fue respondida por el propio Atif Aziz.

HTHS, Charles

He instalado desde elmah Nuget y elmah on XML log, no tiene la funcionalidad esperada, aunque podía acceder http://localhost/elmah.axd, pero sin la captura de error.

Me di permiso de escritura en los IIS_IUSERS cuenta en la carpeta App_Data y comenzó a trabajar para HTTP 404 errores y los errores que están fuera de la infraestructura MVC. Pero no ingrese excepciones dentro de la MVC. La solución fue la instalación de paquete de elmah.mvc Nuget y comenzó a capturar todas las excepciones.

Si su configuración es correcta, entonces sólo tiene que instalar el paquete de elmah.mvc Nuget y debe comenzar a almacenar registros también dentro de MVC, no sólo HTTP 404.

El problema es esta línea

  <customErrors mode="On" defaultRedirect="GenericErrorPage.htm">

Reemplazar por

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top