Un classico errore di cui è difficile trovare documentazione è il seguente; quando un modulo Managed (IHttpModule) intercetta una chiamata POST e tenta a recuperare informazione dalla Context.Request sembra che rimuova il body dalla Request stessa, questo causa un errore nella successiva pipeline Unmanaged (VBS context).
L'errore viene causato dentro il modulo con un accesso del tipo:
Request["chiave"]
Semplicemente basta essere sicuri di accedere solo alla QueryString per risolvere l'errore:
Request.QueryString["chiave"]
In realtà come documentato in diversi post Request["chiave"] esegue una serie di probing tra cui in ordine QueryString e Form ecc...; quando avviene il probing su Form (utilizzato per recuperare i parametri POST) il modulo corrompe la request e quando da VBS si accede in modo diverso da QueryString.
Riassumendo, se da un Modulo Http acceddi ai parametri del body della richiesta POST quando il modulo processa queste variabili altera la Request stessa rendendola non più valida per il contesto VBS; non usare mai Request["chiave"] ma sempre Request.QueryString["chiave"]; se il modulo deve valutare le variabili POST... Vedremo quando mi capiterà ;)
Scrivo questo post principalmente come reminder personale ;)
Essendo il mio il blog di riferimento.