page net mvc log handling errors error custom catch asp all c# asp.net-mvc elmah http-status-code-403

c# - log - error page asp net mvc



¿No se puede acceder/elmah en el servidor de producción con Elmah MVC? (2)

Asegúrese de que HttpHandler esté definido en la sección webServer en su archivo web.config.

<system.webServer> <httpHandlers> <add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> </httpHandlers> </system.webServer>

Instalé el paquete elmah.mvc nuget y mantuve la configuración predeterminada de esa configuración sans enviando un correo electrónico y conectándolo a una base de datos SQL.

En mi máquina local cuando uso el host de Visual Studio, puedo abrir mi aplicación y acceder / elmah bien para ver un informe de los errores. Sin embargo, cuando intento acceder a / elmah en la producción, obtengo dos errores, primero obtengo un 403 access is denied error del servidor. Luego en mi correo electrónico (de Elmah) obtengo:

System.Web.HttpException: Server cannot set status after HTTP headers have been sent.

¿Alguien sabe qué está pasando aquí y cómo solucionarlo? Gracias.

Intenté lo siguiente hasta donde lo sugieren las respuestas a continuación:

En <system.webServer>

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

Y en <system.web>

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

Intenté establecer el camino para elmah.axd y simplemente ~/elmah . Todos siguen dando el mismo error, y aún funciona localmente, pero no en producción.

Editar: en realidad también funciona cuando remito al servidor y accedo a él a través del navegador allí (no usando el host local, sino la dirección real del sitio). Entonces, ¿qué permiso no estoy teniendo? Parece que está en el nivel del servidor.


Debe habilitar Elmah para acceso remoto agregando la siguiente configuración a la sección <elmah> en su archivo web.config. La configuración predeterminada para este valor es falso, que solo permite el host local, por lo que funciona en su equipo local desde Visual Studio.

<elmah> <security allowRemoteAccess="true"/> </elmah>

Siempre me olvido de esto y me paso unos minutos rascándome la cabeza;)