He instalado el elmah.mvc paquete de nuget y se mantiene la configuración predeterminada de que sans configurar el envío de un correo electrónico y conectarlo a una base de datos SQL.

En mi máquina local cuando uso el Visual Studio host, puedo abrir mi aplicación y el acceso /elmah fino para ver un informe de los errores. Sin embargo, cuando trato de acceso y /elmah en la producción, me da dos errores, primero se obtiene una 403 access is denied de error del servidor. Luego, en mi correo electrónico (de elmah) recibo:

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

Alguien sabe de lo que está pasando y cómo solucionarlo? Gracias.

He intentado de la siguiente tan lejos como sugieren las siguientes respuestas:

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>

He intentado configurar la ruta de acceso tanto elmah.axd y simplemente ~/elmah. Todos siguen dando el mismo error, y todavía funciona a nivel local, pero no en la producción.

Edición: realmente funciona también cuando me mando a distancia en el servidor y acceder a ella a través del navegador en la que hay (no usar localhost, pero la dirección del sitio). Entonces, ¿qué permiso no estoy teniendo? Parece que es en el nivel de servidor.

  • Usted también querrá vistazo a este post si usted está en producción: stackoverflow.com/questions/4416318/how-to-secure-elmah-axd
  • Supongo que debo aclarar que yo sólo quería decir cuando se accede desde un lugar que a través de localhost, no es necesariamente nuestro servidor en vivo que otras personas puedan acceder.
  • IIS 6 o 7? Los permisos establecidos de forma explícita en .axd archivos dentro de IIS?
InformationsquelleAutor SventoryMang | 2012-07-26

2 Comentarios

  1. 118

    Necesita habilitar Elmah para el acceso remoto mediante la adición de la siguiente configuración para el <elmah> sección en su web.archivo de configuración. El valor predeterminado para este valor es false, lo que sólo permite localhost, por lo cual se está trabajando en su máquina local desde dentro de Visual Studio.

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

    Siempre me parecen olvidar esto mismo y pasar un par de minutos rascando mi cabeza 😉

    • Sólo en Google para encontrar esta respuesta y estaba a punto de upvote cuando me di cuenta ya lo hice – presumiblemente última vez que traté de configurar Elmah y se olvidó de esto! Gracias 🙂
    • sólo tenía el mismo problema como Jamie Humphries… algunas respuestas son merecedores de múltiples upvotes
    • He añadido el <httpHandlers> cosa en el sistema.web como DOTang dijo y luego esto y funcionó !
    • tratando muy duro para añadir <elmah> <security allowRemoteAccess="true"/> </elmah> a mi web.config pero nada funciona. ¿Dónde puedo añadir? lo que es la pre-requisitos hay? lo que se necesita para estar en su lugar antes de agregarlo? gracias.
    • Único pre-requisito es que usted tiene la Elmah.MVC Paquete de NuGet añadido a su sitio web. Por favor, siga las instrucciones que aparecen en el sitio web del proyecto – github.com/alexbeletsky/elmah-mvc
  2. 1

    Asegúrese de que usted HttpHandler se define en el servidor web de la sección en su web.el archivo config.

    <system.webServer>
      <httpHandlers>
        <add name="elmah" verb="GET" path="elmah.axd"  type="Elmah.ErrorLogPageFactory, Elmah"/>
      </httpHandlers>
    </system.webServer>
    • Bueno, yo no estoy seguro de si deberías poner eso en el sistema.en la web porque el sistema.servidor web sólo tiene un <controladores> etiqueta, pero he intentado poner esto en ambos lugares y también tratando de ambos elmah.axd y ~/elmah en el camino (ya que es MVC) y aún así no funciona y aún tiene los mismos errores.
    • Ha añadido una ruta para el controlador? Usted puede tener una ignorar la ruta y *.axd solicitudes.
    • Cómo iba yo a hacer eso? No hay ningún controlador/acción para la ruta. También sí tengo routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); pero la pregunta sería entonces, ¿por qué se hace localmente en localhost, o incluso al navegar a la URL (no localhost) directamente en el servidor sin la adición de estos controladores o rutas? Este es el uso de Elmah.Mvc, así que una gran parte de la costumbre de rigging (que parece ser lo que usted sugiere en base a los artículos que he visto) para conectarlo a MVC no es necesario…a pesar de que algo no está funcionando.

Dejar respuesta

Please enter your comment!
Please enter your name here