Come far passare la pagina HTML statica attraverso httpmodule in IIS7.0?
-
06-11-2019 - |
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