2017-09-06 1 views
3

Ich versuche, einen Reverse-Proxy einzurichten, indem ich Azure-Websites verwende, etwa this guide, die erläutert, wie man ApplicationHost.config auf einer solchen Website ändert - aber es funktioniert nicht für mich.Azure App Service applicationHost.xdt scheint keinen Effekt zu haben

Ich habe diese applicationHost.xdt haben:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.webServer> 
     <proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" /> 
     <rewrite> 
      <allowedServerVariables> 
       <add name="HTTP_X_ORIGINAL_HOST" xdt:Transform="InsertIfMissing" /> 
       <add name="HTTP_X_UNPROXIED_URL" xdt:Transform="InsertIfMissing" /> 
       <add name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" xdt:Transform="InsertIfMissing" /> 
       <add name="HTTP_ACCEPT_ENCODING" xdt:Transform="InsertIfMissing" /> 
      </allowedServerVariables> 
     </rewrite> 
    </system.webServer> 
</configuration> 

ich es in der App site Verzeichnis meiner Web gestellt.

Die Transformationen scheinen ausgeführt werden sollen (aus dem Protokoll-Transformation):

2017-09-06T12:12:20 StartSection Executing InsertIfMissing (transform line 8, 50) 
2017-09-06T12:12:20 on /configuration/system.webServer/rewrite/allowedServerVariables/add 
2017-09-06T12:12:20 Applying to 'allowedServerVariables' element (no source line info) 
2017-09-06T12:12:20 EndSection Done executing InsertIfMissing 

Ich habe in der Tat vier dieser Blöcke.

Ich bekomme immer noch 500s beim Setzen der Header mit neu schreiben. Die detaillierte Fehlermeldung enthält:

<h3>HTTP Error 500.50 - URL Rewrite Module Error.</h3> 
<h4>The server variable &quot;HTTP_X_UNPROXIED_URL&quot; is not allowed to be set. Add the server variable name to the allowed server variable list.</h4> 

Nicht sicher, was zu diesem Zeitpunkt zu tun ist. Irgendwelche Ideen?

+1

Beginnen Sie bitte mit https://github.com/projectkudu/kudu/wiki/Azure-Site-Extensions#understanding-what-could-go-wrong-with-xdt-transforms und ermitteln Sie, ob Ihr Problem vorliegt der zweite oder dritte Eimer. –

+0

Ich habe es mit dieser Ressource arbeiten - danke. Ich wusste nicht, wie man die resultierende 'applicationhost.config' sieht. – John

Antwort

2

Der Schlüssel zum Untersuchen dieser Probleme besteht darin, festzustellen, ob das Problem darin besteht, dass die Umwandlung nicht das Richtige tut oder die applicationhost.config nicht wie erwartet funktioniert.

Sie können die generierte applicationhost.config in D:\local\Config von Kudu-Konsole überprüfen.

Weitere Informationen hierzu finden Sie unter this page.

+0

Ich habe jetzt ein paar Mal überprüft und die Anwendung host.xdt funktioniert auf meinem primären Slot, aber auf meinem Dev-Slot passiert keine Transformation. Die xdt ist die gleiche, ich habe sie an den gleichen Stellen, aber es wird auch kein Transform-Protokollordner erstellt, nachdem die App neu gestartet wurde. Die 500, die ich bekomme, ist ein Zugriff verweigert, der versucht, auf einen Header in den URL-Rewrite-Regeln meiner web.config zuzugreifen. Ich frage mich, ob dies eine Henne-Ei-Sache ist, mit der Umwandlung nicht passiert, weil es später in der Pipeline als die URL Rewrite Auswertung passiert? – Sentinel

+0

@Sentinel würde eine neue Frage vorschlagen, da Ihr Fall spezifischer aussieht. Fühlen Sie sich frei, von hier zu verbinden. –

+0

Hallo [David Ebbo] (https://stackoverflow.com/users/111888/david-ebbo) - Hätten Sie zufällig eine Lösung für dieses Problem [Regel für ITE neu schreiben für HTTPS-Weiterleitung an HTTP verursacht null HttpContext.Request.ContentType ] (https://stackoverflow.com/questions/48871977/rewrite-rule-to-iis-for-https-redirect-to-http-causes-null-httpcontext-request-c)? – ttugates

Verwandte Themen