Question

J'ai créé un simple httpmodule qui supprime les espaces blancs de la réponse avant de l'envoyer au client. Cela fonctionne bien pour une page ASPX sur IIS7.0, mais si je crée une page HTML statique et l'appelle, le httpmodule ne démarre pas (la façon dont je sais est parce que la source contient des espaces blancs, qui autrement auraient dû être supprimés). Apparemment, il y a quelque chose que je ne fais pas bien, mais je ne sais pas quoi.

Mon site Web est dans un pool d'applications avec .NET 4.0 et ManagedPipelineMode = Integrated.

J'ai ajouté mon module en tant que module managed et se réfère à un assemblage à clé forte de GAC.

Merci

Edit- Voici la partie System.Webserver de web.config

<system.webServer>
  ...
  <modules runAllManagedModulesForAllRequests="true">
    <add name="RemoveWhitespaceHttpModule" 
         type="HttpModules.Modules.RemoveWhitespaceHttpModule, HttpModules, 
           Version=1.0.0.0, Culture=neutral, PublicKeyToken=8a83u4bi47o9fo0d" 
           preCondition="" />
  </modules>
  <defaultDocument>
    <files>
      <add value="TestForm.aspx" />
    </files>
  </defaultDocument>
</system.webServer>

Modifier-le corrigez. Pour toute personne intéressée, c'est ainsi que mon module vérifie la réponse, puis décide de procéder à la suppression des espaces ou non

if (contentType.Equals("text/html") 
  && httpContext.Response.StatusCode == 200 
  && httpContext.CurrentHandler != null)
{ ... }

Le problème était avec la troisième condition ci-dessus httpcontext.currentHandler! = null. Lors de l'appel de ce module pour des pages .html statiques, le courant actuel était nul et donc le code n'est jamais entré à l'intérieur pour manipuler HTML. J'ai supprimé cette troisième condition et cela fonctionne maintenant. Merci pour vos réponses à tous

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top