Domanda

Ho creato un semplice httpmodule che rimuove gli spazi bianchi dalla risposta prima di inviarlo al client. Funziona bene per una pagina ASPX su IIS7.0 ma se creo una pagina HTML statica e la chiamo, HTTPMODULE non inizia (il modo in cui lo so è perché la fonte contiene spazi bianchi, che altrimenti avrebbe dovuto essere rimosso). Apparentemente c'è qualcosa che non sto facendo bene, ma non so cosa.

Il mio sito web è in un pool di applicazioni con .NET 4.0 e ManagedPipelineMode = Integrated.

Ho aggiunto il mio modulo come MamedModule e si riferisce a un gruppo di nomi forte di GAC.

Grazie

EDIT- Ecco la parte System.Webserver da 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>

EDIT- FISS IT. Per chiunque sia interessato, è così che il mio modulo controlla la risposta e quindi decide se procedere con la rimozione dello spazio bianco o no

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

Il problema era con la terza condizione sopra httpcontext.currentHandler! = null. Quando chiama questo modulo per pagine .html statiche, l'attualehandler era nullo e quindi il codice non è mai entrato per manipolare HTML. Ho rimosso questa terza condizione e ora funziona. Grazie per le tue risposte a tutti

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top