2008-10-09 21 views
18

¿Estoy utilizando IIS6, he escrito un HttpModule y obtengo este error? Después de buscar en Google, descubrí que este problema está causado por .NET Framework 3.5, así que puse esto en una máquina donde no instalé .NET 3.5, ¡pero el problema sigue ahí!IIS6 + HttpModule: esta operación requiere el modo de canalización integrada IIS

+0

Podría explicar lo que su módulo está haciendo? – AnthonyWJones

+0

compruebe si la contraseña del usuario está expridida y luego oblígalo a cambiarla. – sdhjl2000

+0

Debe proporcionar un código que muestre dónde se produce el error. –

Respuesta

7

Solo IIS7 es compatible con la canalización integrada. En IIS7, un HttpModule puede participar en todas las solicitudes que llegan al servidor web, no solo aquellas dirigidas a extensiones de archivos específicas.

II6 usa lo que IIS7 llama la tubería clásica donde un HttpModules solo puede involucrarse una vez que la tubería basada en ISAPI anterior determina que la asignación del script requiere que la solicitud se entregue a ASP.NET.

39

Mi intento de depuración psíquica: estás usando una declaración como:

Response.Headers("X-Foo") = "bar" 

Si este es el caso, el cambio de esto como se muestra a continuación solucionar el problema:

Response.AddHeader("X-Foo", "bar") 
+0

Will 'response.Headers.Location = new Uri (...);' rompe IIS6 y da 500 'Internal Server Error'? – Blaise

6

Solo encontré este problema. Usando IIS6 y .NET 3.5. La solución para mí fue usar Response.AddHeader en lugar de Response.Headers.Add. HTH.

0

Inspirado por otras respuestas, he encontrado que está accediendo a la Response.Headers objeto que causa la "operación requiere IIS integrado modo de canalización" excepción.

Evitar .Headers y llamar a otras funciones de ayuda al igual que (mayores?): (En mi caso)

  • Response.AddHeader() y
  • Response.ClearHeaders()
Cuestiones relacionadas