2012-03-27 19 views
5

Wir üben kontinuierliche Bereitstellung mit TFS (2008) und suchen nach einer netten Möglichkeit, Änderungen an IIS-Einstellungen zu verarbeiten. MSDeploy scheint der richtige Weg dafür zu sein, aber nach langem Lesen und Suchen habe ich keine gute Antwort gefunden.Kontinuierliche Bereitstellung von IIS-Einstellungen mit MSDeploy

Das Problem mit MSDeploy, wie ich es sehe, ist, dass Sie ein Bereitstellungspaket mithilfe einer vorhandenen IIS-Website erstellen müssen. Ich möchte in der Lage sein, die passende IIS-Konfiguration für die Website in der Quellcodeverwaltung zu haben und das Build das Paket erstellen zu lassen.

Die einzige Möglichkeit, die ich sehen kann, ist, Handwerk die Archiv.xml-Datei Hand. Ist mein Denken richtig oder gibt es einen besseren Weg?

+0

Wenn Sie eine kontinuierliche Bereitstellung üben, würde ich davon ausgehen, dass Sie Ihre Website kurz vor der Bereitstellung testen. Dies würde bedeuten, dass Sie bereits eine Website zum Testen haben. Die Verwendung von MSDeploy ist dann kein Problem. Dies ist das Setup, das ich seit vielen Monaten mit mehreren täglichen Releases verwende. Vielleicht übersehe ich etwas, aber ich sehe das Problem nicht ... – Manfred

+1

@John - Also, wo änderst du IIS? Ihre Testwebsite? Wie greifen Entwickler diese Veränderungen auf? Zugegeben, die IIS-Einstellungen ändern sich normalerweise nicht sehr, aber die Quellcodeverwaltung sollte der zentrale Ort für alle anwendungsspezifischen Änderungen sein. – JontyMC

+0

Welche Art von Änderungen meinen Sie? Zum Beispiel sind diese Änderungen in der web.config oder in der IIS-Konfiguration (z.B. unter Verwendung eines anderen Anwendungspools). Wenn es Letzteres ist, kann ich Ihren Standpunkt sehen. – Manfred

Antwort

0

Ich endete mit Powershell Web-Administrationsmodul (mit PSake für den Build), um dies zu tun. Ich würde das immer noch lieber deklarativ machen.

0

Ich konnte einige der Website-Einstellungen in meine web.config legen, so dass sie sich in der Quellcodeverwaltung befinden und einfach zu verteilen sind. Aber nicht alles. Einige scheinen in der IIS-Hierarchie höher gesetzt zu werden und können dann nicht von meiner web.config überschrieben werden.

Ich habe nie einen Weg gefunden, dies mit Anwendungspool-Einstellungen zu tun.

Zum Einrichten neuer Websites schrieb ich eine kleine C# WinForms-App, die die programmatische Schnittstelle zu IIS verwendet, um die Websites und App-Pools zu erstellen und ihre Einstellungen zu ändern. Wahrscheinlich ähnlich wie Ihr PowerShell-Skript.