Section courante

A propos

Section administrative du site

Cartographie de caractères génériques IIS 5.x et ELMAH

Le problème

Comme décrit dans les fil de discussion, ELMAH ne fonctionne pas correctement avec IIS5x en combinaison avec la cargographie générique. Cela se traduit par des erreurs HTTP 404 lors de l'accès à elmah.axd/stylesheet, elmah.axd/rss et autres.

Ceci est dû au fait que ErrorLogPageFactory utilise Request.PathInfo (c'est-à-dire la variable serveur PATH_INFO) pour déterminer le gestionnaire à utiliser. Avec la cartographie générique, cette variable est calculée légèrement différemment, ce qui empêche ELMAH de déterminer le gestionnaire à utiliser.

NB : Les idées et les bases de la solution à ce problème proviennent de message sur le forum.

La solution

Pour résoudre ce problème, vous pouvez ajouter le module FixIIS5xWildcardMappingModule à votre application comme suit :

<httpModules>
  <add name="FixIIS5xWildcardMappingModule" 
       type="Elmah.FixIIS5xWildcardMappingModule, Elmah"/>
</httpModules>

NB : Le fil de discussion mentionné au début de cet article propose des solutions alternatives, mais celles-ci ont depuis été remplacées par celle-ci.

Problèmes potentiels

Premièrement, cette solution ne fonctionne pas avec ASP.NET 1.0. En effet, HttpContext.RewritePath n'existe pas dans la version 1.0 du .NET Framework.

Deuxièmement, il est possible que le module ne fonctionne pas non plus avec ASP.NET 1.1. La version 1.1 du .NET Framework n'inclut pas de méthodes permettant de déterminer directement l'attribut path dans la déclaration httpHandler de Elmah.ErrorLogPageFactory. Le module charge le fichier web.config dans un XmlDocument et exécute une requête XPath pour sélectionner le noeud approprié. Dans le cas peu probable où le fichier web.config ne pourrait pas être chargé, le chemin de gestionnaire par défaut elmah.axd est supposé. Si cette hypothèse est fausse, le module cessera de fonctionner correctement.



Dernière mise à jour : Mercredi, le 23 novembre 2022