J'ai écrit mon propre module HTTP IIS géré en C#. Son but est simplement d'activer les en-têtes de requête X-Forwarded-For et X-Forwarded-Proto à certaines conditions (qui ne peuvent pas être traitées avec des règles de routage). Le module doit être déployé sur notre équilibreur de charge (qui n'est autre que IIS avec ARR installé et des fermes de serveurs configurées). Pour certaines raisons, les en-têtes sont définis mais ne sont pas transmis aux serveurs Web situés derrière l'équilibreur de charge. Je le sais car j'ai vérifié les journaux de sortie de Failed Request Tracing.
Et voici une capture d'écran de tous les modules IIS installés sur notre équilibreur de charge :
Comme vous pouvez le voir, mon module géré appelé "QA.XForwardedHeadersModule" est chargé avant le module natif ApplicationRequestRouting (ARR). Mais les en-têtes ne sont pas transmis de toute façon. J'ai même tracé mes requêtes avec Wireshark. Il n'y a pas du tout d'en-têtes X-Forwarded.
Cela signifie-t-il que les modules gérés ne sont pas entièrement compatibles avec les modules natifs et que les modules natifs (comme ARR) ne peuvent pas voir les en-têtes de demande définis par les modules gérés (comme mon module personnalisé) ? Existe-t-il une solution de contournement de ce problème ?