He creado un HttpModule simple que elimina los espacios en blanco de la respuesta antes de enviarlo al cliente. Esto funciona bien para una página aspx en IIS7.0 pero si creo una página html estática y la llamo, el HttpModule no entra en acción (la forma en que sé es porque la fuente contiene espacios en blanco, que de otro modo deberían haberse eliminado). Aparentemente hay algo que no estoy haciendo bien, pero no sé qué.¿Cómo hacer que la página Html estática pase por HttpModule en IIS7.0?
Mi sitio web está en un grupo de aplicaciones con .NET 4.0 y ManagedPipelineMode = Integrated
.
He agregado mi módulo como un ManagedModule y se refiere a un ensamblaje de clave segura de GAC.
gracias
Editar- aquí es la parte 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>
Editar- arreglaron. Para todos los interesados, así es como mi módulo comprueba la respuesta y luego decide si desea continuar con la eliminación de espacios en blanco o no
if (contentType.Equals("text/html")
&& httpContext.Response.StatusCode == 200
&& httpContext.CurrentHandler != null)
{ ... }
El problema fue con la condición tercera httpContext.CurrentHandler! = Null. al llamar a este módulo para páginas .html estáticas, el actualHandler era nulo y, por lo tanto, el código nunca entró para manipular html. He eliminado esta tercera condición y funciona ahora. gracias por sus respuestas a todos
cambie el nombre de su página .html estática a .aspx (no es necesario cambiar el contenido) y la cosa debería funcionar – Alex
GZIP ya hace esto http://stackoverflow.com/questions/702124/enable-iis7-gzip – jrummell
@alex - eso no es lo que quiero lograr. Podría haberlo hecho fácilmente y no haber planteado esta pregunta en absoluto. Quiero poder utilizar este httpmodule no solo para aplicaciones asp.net, sino también para aplicaciones de fusión fría. mi objetivo es hacerlo funcionar para .html páginas y llevarlo desde allí. –