2013-05-02 13 views
5

Nie mogę znaleźć sposobu na przekształcenie transformacji wdrożenia web.config w regułę przepisywania. Próbowałem następujące i to ignoruje.aktualizacja reguły przepisywania adresu URL za pomocą instalacji sieci web vs2012 transformacje web.config

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 


<system.webServer> 
<rewrite xdt:Transform="Replace"> 
    <rules> 

    <rule name="Force HTTPS On Login/Register" stopProcessing="true"> 
     <match url="Account/Login(.*)|Register(.*)" ignoreCase="true" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" /> 
    </rule> 


    <rule name="Force HTTPS Off" stopProcessing="true"> 
     <match url="((Account/Login(.*))|(Register(.*)))" negate="true" ignoreCase="true" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="^ON$" ignoreCase="true" /> 
     </conditions> 
     <action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> 
    </rule> 


    </rules> 
</rewrite> 
</system.webServer> 
+0

działał zgodnie z zaleceniami. do tej pory nie musiałem używać slowcheetah. Ciągle słyszę o tym, ale po prostu nienawidzę dodawać do moich zależności. –

Odpowiedz

6

Używam SlowCheetah do transformacji mojego web.config do produkcji. I początkowo próbował czego próbowałem, ale okazało się, że musiałem dodać pustą

<rewrite> 
    <rules /> 
</rewrite> 

do web.config bazowej

a następnie napisać transformacji jak

<system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="Redirect to HTTPS" stopProcessing="true" xdt:Transform="Insert"> 
      <match url="(.*)" /> 
      <conditions> 
      <add input="{HTTPS}" pattern="^OFF$" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 
     </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

(czyli przekierować transformację, ale myślę, że ta sama zasada powinna obowiązywać).

Uwaga xdt:Transform="Insert" do wstawienia nowego węzła do szkieletu <rules /> w podstawowym pliku konfiguracyjnym.

+0

Witaj Eric, czy kiedykolwiek widziałeś problem, w którym pusta reguła daje błąd http 500.19? Moja lazurowa maszyna wirtualna zgłasza ten błąd, ale mój serwer colo (ten sam system operacyjny) tego nie robi. –

+0

Nie, nie widziałem tej sytuacji, chociaż nie używam Azure. Być może opublikuj nowe pytanie dotyczące tego błędu specyficznego dla platformy Azure? Ten błąd oznacza, że ​​plik konfiguracyjny jest nieprawidłowy. Czy jesteś pewien, że transformacja została poprawnie zastosowana na maszynie wirtualnej Azure? http://blogs.msdn.com/b/webtopics/archive/2010/03/08/troubleshooting-http-500-19-errors-in-iis-7.aspx –

Powiązane problemy