asp.net asp.net-mvc azure elmah

asp.net - ¿Cómo configurar ELMAH para que funcione con Windows Azure? Obtengo un 404 en Elmah.axd



asp.net-mvc (3)

Tengo una función web ASP.NET MVC ejecutándose en Windows Azure y tengo la configuración correcta de ELMAH en el web.config. También tengo mis rutas global.asax ignorar * .axd. Localmente, puedo cargar /elmah.axd, sin embargo, cuando implemente en Azure, obtengo un 404 en esa página. ¿Alguien ha conseguido que ELMAH trabaje en Azure?


¡También asegure el archivo para que solo los usuarios permitidos puedan ver los registros de errores!

<location path="admin/elmah.axd"> <system.web> <authorization> <allow roles="Administrator" /> <deny users="*" /> </authorization> </system.web> </location>


Azure está basado en Windows Server 2008 e IIS7. Esto significa que debe completar la parte system.webServer del archivo web.config.

El archivo de muestra incluido con el código fuente de Elmah contiene los detalles que debe incluir.

<system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules> <remove name="ScriptModule" /> <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> </modules> <handlers> <remove name="WebServiceHandlerFactory-Integrated"/> <remove name="ScriptHandlerFactory" /> <remove name="ScriptHandlerFactoryAppServices" /> <remove name="ScriptResource" /> <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add name="elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> </handlers> </system.webServer>

Hay 2 líneas elmah en el bloque anterior de xml que deberá incluir, y la sección en general debería contener la mayoría si no todos esos elementos de todos modos.

EDITAR: ya no es necesario, ya que esto está ahora activado por defecto:

Para que Elmah funcione, también necesitarás modificar la siguiente línea en tu archivo ServiceDefinition.csdef:

<WebRole name="WebRole" enableNativeCodeExecution="true">


Creo que adicionalmente (a lo sugerido por @ mat1t aquí ) es posible que deba establecer el acceso remoto a 1:

<elmah> <security allowRemoteAccess="0" /> .............. .............. </elmah>