Tengo un sitio que usa ISAPI Rewrite, así como un HttpModule personalizado que hace redirecciones Url y reescribe.IIS7 HttpModule y la orden de ejecución del filtro ISAPI
En IIS 6, todo funcionó bien: el filtro de reescritura ISAPI se ejecutaría primero, seguido del HttpModule. En IIS 7 (modo integrado) el orden es ahora el inverso, lo que plantea un problema.
Mi problema, específicamente, es que el HttpModule tiene una condición donde emitirá una reescritura de Url usando context.RewritePath
. Se agregará explícitamente "index.aspx" a la ruta si no se proporcionó ningún documento, por lo que una solicitud a /test/
se reescribe en /test/index.aspx
.
En algún momento después de reescribir la ruta, se ejecuta el filtro ISAPI Rewrite. Tenemos una regla que hace lo contrario al módulo: una solicitud al /test/index.aspx
se redirecciona 301 al /test/
. Por lo tanto, tenemos un ciclo sin fin.
¿Cómo se determina el orden de ejecución de HttpModules y ISAPI Filters en IIS 7? ¿Se puede cambiar la orden? Encontré this question, pero realmente no me ayudó. No soy un maestro de IIS 7, pero sí entiendo hasta cierto punto que los módulos y los filtros ISAPI se ejecutan "juntos". Desafortunadamente, todavía se administran de manera diferente y no puedo imaginar cómo forzar a uno a correr antes que el otro. ¡Ayuda!
Nota: supongamos que no puedo cambiar el código existente. Funcionó en IIS 6. Solo quiero saber si hay una forma de hacerlo funcionar en el modo integrado de IIS 7.