ELMAH dentro de un error de página temática
-
20-09-2019 - |
Pregunta
Tengo una página temática por lo que el tema se elige dentro de un módulo HTTP.
public void context_PreRequestHandlerExecute(object sender, EventArgs e)
{
Page p = HttpContext.Current.Handler as Page;
if (p != null)
{
//get theme
string theme = GetTheme(HttpContext.Current.Request.Url.Host);
Debug.WriteLine(String.Format("Loading theme {0}", theme));
//set theme of page
p.Theme = theme;
}
}
Ahora, cuando solicito el elmah.axd se lanza la siguiente excepción:
El uso de archivos CSS temáticas requiere un control de cabecera de la página. (Por ejemplo).
Cuando desactivo el módulo http tema todo está bien y se muestra la página elmah.axd. Creo que este es un pequeño fallo en el interior del ErrorLogPage. El ErrorLogPage debe hacer frente al hecho de que un tema se puede dar a la página o debe ignorar el tema dado en absoluto.
Por ahora el uso de la solución:
private const string ELMAH_ERROR_PAGE = "Elmah.ErrorLogPage";
if (p.GetType().FullName != ELMAH_ERROR_PAGE)
{
p.Theme = theme;
}
¿Tiene alguna idea mejor o pensamientos?
Gr
Martijn
Los Países Bajos
Solución
Una solución a su problema ha sido respondida antes:
excluir ciertas páginas de usando un HTTPModule .
Se podría utilizar un lugar HTTPHandler de un HTTPModule. Los manipuladores que permiten especificar una ruta al declararlas en Web.Config.
<add verb="*" path="/validate/*.aspx" type="Handler,Assembly"/>
Si tiene que usar un HTTPModule, se podría simplemente comprobar la ruta de la solicitar y si se trata de un ser excluidos, pasar por alto la validación.