ELMAH au sein d'une page d'erreur sur le thème
-
20-09-2019 - |
Question
I ai une page sur le thème de sorte que le thème est choisi à l'intérieur d'un module de 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;
}
}
Maintenant, quand je demande la elmah.axd l'exception suivante est levée:
En utilisant le thème des fichiers CSS nécessite un contrôle d'en-tête sur la page. (Par exemple).
Lorsque je désactive le tout module de thème http est très bien et la page elmah.axd est affichée. Je pense que c'est un petit bug dans la ErrorLogPage. Le ErrorLogPage doit faire face au fait qu'un thème peut être donné à la page ou doit ignorer le thème donné du tout.
Pour l'instant j'utilise la solution de contournement:
private const string ELMAH_ERROR_PAGE = "Elmah.ErrorLogPage";
if (p.GetType().FullName != ELMAH_ERROR_PAGE)
{
p.Theme = theme;
}
Avez-vous des meilleures idées ou pensées?
Gr
Martijn
Les Pays-Bas
La solution
Une solution à votre problème a été répondu avant:
Exclure certaines pages de l'aide d'un HttpModule .
Vous pouvez utiliser un HTTPHandler à la place d'un HttpModule. Handlers vous permettent spécifier un chemin lorsque vous les déclarez dans web.config.
<add verb="*" path="/validate/*.aspx" type="Handler,Assembly"/>
Si vous devez utiliser un HttpModule, vous pourrions simplement vérifier le chemin du demander et si elle est un être exclus, contourner la validation.