2014-04-08 5 views
5

Ich verwende Web Deploy (ab VS2013), um eine ASP.NET MVC-Site auf einem IIS 7.5 zu veröffentlichen.Web Deploy Löschen der benutzerdefinierten IIS-Website-Konfiguration

Ich habe einige URL-Rewrite-Regeln und benutzerdefinierte HTTP-Antwortheader über den IIS-Manager hinzugefügt.

Das Problem ist jedes Mal, wenn ich eine neue Version der Site bereitstellen, diese zusätzliche Konfiguration wird gelöscht.

Ist dies das erwartete Verhalten oder stimmt etwas nicht? Wie kann ich diese benutzerdefinierten Einstellungen bei jeder Bereitstellung beibehalten?

UPDATE

So verstand ich mich diese Änderungen in den web.config setzen muß. Ich versuche, sie in die Web.Release.config zu setzen, aber es wird nicht zu der entfalteten web.config hinzugefügt. Ich denke, ich vermisse etwas XDT:Transform Regel.

Dies ist, was ich in meinem Web.Release.config bekommen habe (ja, das Publishing-Profil verwendet diese Release-Konfiguration).

<configuration> 
    <!-- some other stuff --> 
    <system.webServer> 
     <rewrite> 
      <rules> 
      <rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true"> 
       <match url="*" /> 
       <conditions> 
       <add input="{HTTP_HOST}" pattern="mydomain.com" /> 
       </conditions> 
       <action type="Redirect" url="http://www.mydomain.com/{R:0}" /> 
      </rule> 
      </rules> 
     </rewrite> 
     </system.webServer> 
</configuration> 
+1

Sind diese in die web.config setzten Veränderungen, die eingesetzt wird? Wenn Sie den Unterschied zwischen Ihrer lokalen web.config-Datei und der bereitgestellten Datei prüfen (nachdem die Änderungen vorgenommen wurden), gibt es Unterschiede zwischen den Dateien? – NoLifeKing

+0

@NoLifeKing Nein, wie gesagt, die Änderungen wurden über den IIS-Manager vorgenommen, nicht über web.config. Muss ich sie über web.config erstellen? – emzero

+0

Änderungen, die im IIS-Manager vorgenommen wurden, ändern die bereitgestellte web.config-Datei mit den neuen Werten. Natürlich gibt es Ausnahmen, was geändert wird, nicht alles wird in die web.config gelegt. – NoLifeKing

Antwort

0

Ok Also habe ich verstanden, dass ich diese benutzerdefinierte Konfiguration in der web.config mit XDT:Transform hinzufügen muss.

Ich habe dies die Web.Release.config und es funktioniert:

<system.webServer> 
    <rewrite xdt:Transform="Insert"> 
     <rules> 
     <rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="*" /> 
      <conditions> 
      <add input="{HTTP_HOST}" pattern="mydomain.com" /> 
      </conditions> 
      <action type="Redirect" url="http://www.mydomain.com/{R:0}" /> 
     </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
2

Schalten Sie die Build-Aktion Ihrer web.config auf None. Dadurch wird verhindert, dass die Datei bei jeder Veröffentlichung bereitgestellt wird.

bearbeiten

Für ganze Abschnitte in eine web.config vom web.release.config Einfügen, müssen Sie die xdt: Transform = "Insert" wie so hinzugefügt:

<system.webServer xdt:Transform="Insert"> 
     <rewrite> 
      <rules> 
      <rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true"> 
       <match url="*" /> 
       <conditions> 
       <add input="{HTTP_HOST}" pattern="mydomain.com" /> 
       </conditions> 
       <action type="Redirect" url="http://www.mydomain.com/{R:0}" /> 
      </rule> 
      </rules> 
     </rewrite> 
     </system.webServer> 
+0

Aber ich möchte die Datei web.config bereitstellen (ich habe dort vielleicht etwas hinzugefügt). Es scheint also die einzige Möglichkeit zu sein, die benutzerdefinierte Konfiguration direkt in der web.config hinzuzufügen, oder? – emzero

+0

Publish überschreibt immer das Ziel web.config. Es gibt keine Zusammenführung der beiden Dateien. Sie müssen die Änderungen irgendwo in einer lokalen web.config (der primären oder der .Release.config) haben, damit die Veröffentlichung alle Änderungen mit den richtigen Servereinstellungen überträgt. – Josh

+0

Gut zu jetzt. Ich werde diese Konfigurationen in die Web.Release.config legen. Vielen Dank. – emzero

Verwandte Themen