net instalar enable deploy asp application c# asp.net .net iis arr

c# - enable - instalar rewrite iis



Cómo configurar correctamente el encabezado HTTP con el módulo IIS administrado (1)

He escrito mi propio módulo HTTP IIS administrado en C #. Su propósito es simplemente establecer encabezados de solicitud de Proto Reenviado por X y Reenvío de X en algunas condiciones (que no se pueden manejar con reglas de enrutamiento). El módulo debe implementarse en nuestro equilibrador de carga (que no es otro que IIS con ARR instalado y granjas de servidores configuradas). Por algunas razones, los encabezados están establecidos pero no se transmiten a los servidores web detrás del equilibrador de carga. Lo sé porque verifiqué los registros de salida del seguimiento de solicitudes fallidas.

Y aquí hay una captura de pantalla de todos los módulos IIS instalados en nuestro equilibrador de carga:

Como puede ver, mi módulo administrado llamado "QA.XForwardedHeadersModule" se carga antes del módulo nativo ApplicationRequestRouting (ARR). Pero los encabezados no se transmiten de todos modos. Incluso rastreé mis peticiones con Wireshark. No hay ningún encabezado X-Forwarded en absoluto.

¿Significa que los módulos administrados no son totalmente compatibles con los módulos nativos y los módulos nativos (como ARR) no pueden ver los encabezados de solicitud establecidos con los módulos administrados (como mi módulo escrito personalizado)? ¿Hay alguna solución posible a este problema?


Este es un viejo post "sin respuesta", así que pensé que agregaría mis dos centavos. La adición de encabezados de solicitud podría no funcionar en general, dependiendo de cómo el módulo / manejador ARR procesará la solicitud. Puede ser demasiado tarde como lo mencionó Tarun, pero por otra razón. El módulo ARR puede estar capturando los datos en bruto que se están recibiendo, en cuyo caso definitivamente será demasiado tarde. O es posible que el controlador ARR esté mirando las Variables de servidor particulares que contienen los encabezados originales que se configuraron antes de su notificación (por ejemplo, no creo que ALL_RAW se actualice si agrega encabezados de solicitud adicionales). Tendría que adelantarse a eso y actualizar los datos en bruto, lo que, si es posible, es un nuevo nivel de complejidad.