c# - tag - visual studio documentation xml



Come impostare correttamente l'intestazione HTTP con il modulo IIS gestito (1)

Questo è un vecchio post "senza risposta", quindi ho pensato di aggiungere i miei due centesimi. L'aggiunta di intestazioni di richiesta potrebbe non funzionare in generale, a seconda di come il modulo / gestore ARR elaborerà la richiesta. Potrebbe essere troppo tardi, come ha detto Tarun, ma per un altro motivo. Il modulo ARR potrebbe acquisire i dati grezzi ricevuti, nel qual caso sarà sicuramente troppo tardi. O il gestore ARR potrebbe guardare specifiche variabili server contenenti le intestazioni originali che erano state impostate prima della notifica (ad esempio, non credo che ALL_RAW sia aggiornato se aggiungi intestazioni di richieste aggiuntive.) Nel caso probabile il modulo ARR sta acquisendo buffer raw, tu avrebbe bisogno di anticipare e aggiornare i dati grezzi, che, se possibile, è un nuovo livello di complessità.

Ho scritto il mio modulo IIS HTTP gestito in C #. Lo scopo è semplicemente impostare le intestazioni delle richieste X-Forwarded-For e X-Forwarded-Proto su alcune condizioni (che non possono essere gestite con le regole di routing). Il modulo deve essere implementato nel nostro servizio di bilanciamento del carico (che non è altro che IIS con ARR installato e server farm configurati). Per alcuni motivi le intestazioni sono impostate ma non vengono trasmesse ai server Web dietro il bilanciamento del carico. Lo so perché ho controllato i log di output della traccia delle richieste non riuscite.

Ed ecco uno screenshot di tutti i moduli IIS installati sul nostro sistema di bilanciamento del carico:

Come puoi vedere il mio modulo gestito chiamato "QA.XForwardedHeadersModule" viene caricato prima del modulo nativo ApplicationRequestRouting (ARR). Ma le intestazioni non vengono trasmesse comunque. Ho persino tracciato le mie richieste con Wireshark. Non ci sono affatto intestazioni X-Forwarded affatto.

Significa che i moduli gestiti non sono completamente compatibili con i moduli nativi e i moduli nativi (come ARR) non possono vedere le intestazioni delle richieste impostate con i moduli gestiti (come il mio modulo scritto personalizzato)? C'è qualche soluzione alternativa a questo problema?





arr