2010-11-22 13 views
20

Siamo proprio server A, e in alcune occasioni abbiamo riscrivere le richieste al nostro partner sul server B.IIS proxy inverso con riscritture non può gestire un redirect dal proxy server che abbiamo a

in alcuni casi il server B risponderà con un reindirizzamento a un sito Web completamente diverso, ovvero ciò che è previsto, diciamo il server C. Tuttavia, quando quel server di reindirizzamento del modulo B ritorna al server A, il server A lo interpreta come un reindirizzamento a una posizione su di esso (A) e non come reindirizzamento ad altro sito Web - server C.

Come faccio a prendere nota del reindirizzamento sul sito Web esterno e in effetti ci vado, piuttosto che presumere che il reindirizzamento sia sul mio server (e su 404ing)? Stiamo eseguendo IIS 7 con il modulo di riscrittura.

Qualsiasi aiuto molto apprezzato.

risposta

39

Passare alle impostazioni del proxy ARR (sono nascosti in IIS -> Cache di routing richiesta applicazione -> Impostazioni proxy server) e deselezionare la casella di controllo "Reverse rewrite host in response headers". Questo dovrebbe essere abbastanza

+1

Grazie ** so ** much! Stavo cercando una soluzione a tutto questo giorno. –

+1

Dato che l'impostazione non è memorizzata in Web.config di un sito, come dovrei regolarla tramite codice poiché nel mio caso sono ospitato in Azure, quindi non posso implementare questa modifica delle impostazioni? – ChrisF

+0

Non riesco a trovarlo da nessuna parte in Gestione IIS. Dove si nasconderebbe questa impostazione? – Dylan

4

Se non è possibile modificare questo nella GUI, è possibile impostare la configurazione tramite la riga di comando.

Qualcosa del genere dovrebbe funzionare:

appcmd.exe set config -section:system.webServer/proxy /reverseRewriteHostInResponseHeaders:"False" -commit:apphost 
0

La "host riscrittura inversione nelle intestazioni di risposta" casella di controllo era in un posto diverso per me. Sto usando Windows Server 2012 R2.

Era in Connessioni -> Server Farms -> -> Proxy, appena sotto le impostazioni di timeout.

Nel mio caso, il controllo ha risolto i miei problemi.