Einführung in Web Deploy

von Harsh Mittal

Was ist Web Deploy?

Web Deploy ist ein erweiterbares Client-Server-Tool zur Synchronisierung von Inhalten und Konfigurationen mit dem IIS. Web Deploy wird hauptsächlich in zwei Szenarien verwendet:

  1. Entwicklerinnen und Entwickler verwenden es, um eine kompilierte Webanwendung (ASP .Net, PHP usw.) aus Entwicklertools (Visual Studio, WebMatrix usw.) mit IIS zu synchronisieren (oder „veröffentlichen“).
  2. IT-Fachleute verwenden es, um Websites und Anwendungen von einem Betriebssystem mit einer älteren Version von IIS wie IIS 6 auf ein Betriebssystem mit einer neueren Version von IIS wie IIS 7.5 zu migrieren.

Diagram that shows the path from Source to Destination. Between those points are Websites, Databases, and Configuration.

Was ist der Unterschied zwischen Web Deploy und FTP?

Web Deploy wird oft mit Technologien wie FTP, XCOPY oder RoboCopy verglichen. Diese Technologien sind zwar nützlich, aber Web Deploy bietet mehrere Vorteile.

Hier finden Sie einen Vergleich zwischen Web Deploy und FTP:

  1. Web Deploy ist schneller als FTP. Web Deploy führt nicht für jeden Vorgang einen anderen Befehl aus. Stattdessen wird zu Beginn der Synchronisierung ein Vergleich durchgeführt und nur Änderungen übertragen.
  2. Web Deploy ist sicher. Web Deploy unterstützt die Übertragung über HTTPS. Beachten Sie, dass Varianten von FTP wie SFTP und FTPS ebenfalls sicher sind.
  3. Web Deploy kann Sicherheitsbeschreibungen (ACLs) für Zieldateien und Verzeichnisse festlegen. Sie können Web Deploy beispielsweise verwenden, um Windows-Benutzerinnen und -Benutzern während der Bereitstellung speziellen Zugriff auf den Ordner „Downloads“ Ihrer Anwendung zu geben.
  4. Web Deploy kann Datenbanken veröffentlichen. Web Deploy bietet standardmäßig Unterstützung für das Skripting von SQL Server-, MySQL Server-, Sqlite- und SQL Server Compact-Datenbanken und die Anwendung des resultierenden Skripts während der Synchronisierung. Dies kann sehr praktisch sein, wenn Ihre App eine Datenbank benötigt, um zu funktionieren.
  5. Web Deploy kann während der Bereitstellung Transformationen anwenden. Sie können Web Deploy verwenden, um während einer Synchronisierung eine Verbindungszeichenfolge oder eine Anwendungseinstellung zu ändern. Web Deploy unterstützt eine Vielzahl von Transformationen, einschließlich der Transformation von IIS-Einstellungen.
  6. Web Deploy ist in Visual Studio 2010 und WebMatrix integriert.
  7. Web Deploy ist erweiterbar. Web Deploy verfügt über ein umfangreiches, öffentlich zugängliches Erweiterbarkeitsmodell, mit dem Sie neue Szenarien erstellen können.

Wie funktioniert dies?

Diagram that shows the path from Source to Destination for Admin and another path for Admin and Non Admin.

Die meisten Web Deploy-Vorgänge sind um den Vorgang der Synchronisierung zwischen einer Quelle und einem Ziel herum modelliert. Der Vorgang der Synchronisierung wird vom Web Deploy-Framework unter Verwendung eines oder mehrerer Web Deploy-Anbieter wie unten beschrieben orchestriert.

Framework

Web Deploy besteht aus einem Framework, das den Verbindungsstatus verwaltet und die Synchronisierung zwischen Quelle und Ziel orchestriert. Das Framework ist zum Beispiel dafür verantwortlich, die Synchronisierung bestimmter Arten von Inhalten zu überspringen, Regeln auszuführen und Dateien umzuwandeln.

Das Framework ist sowohl über eine öffentliche API als auch über eine ausführbare Befehlszeile, msdeploy.exe, zugänglich.

Anbieter

Web Deploy kann jede Art von Daten zwischen zwei Standorten synchronisieren, indem es seine eingebauten Anbieter nutzt, die sich in das Framework einfügen. Anbieter wissen, wie man eine bestimmte Art von Daten zwischen zwei Quellen synchronisiert oder nützliche Informationen über die Datenquelle abruft.

Web Deploy verfügt zum Beispiel über einen Anbieter, der mit SQL-Datenbanken (dbFullSql) arbeitet und eine komplette SQL Server-Datenbank mit einem anderen Server synchronisieren kann. Andere integrierte Anbieter synchronisieren MySQL-Datenbanken (dbMySql), IIS 7-Konfiguration (appHostConfig), GAC-Assemblys (gacAssembly) oder COM-Objekte (comObject32/comObject64). Eine vollständigere Liste finden Sie im TechNet.

Das Anbietermodell ist erweiterbar und ermöglicht es Entwicklerinnen und Entwicklern, ihre eigenen Anbieter für Web Deploy zu schreiben, wenn sie benutzerdefinierte Daten synchronisieren müssen.

Im Hintergrund

Wenn eine Quelle eine Aktion über Web Deploy initiiert, stellt das Web Deploy-Framework eine Verbindung mit dem Ziel her. Web Deploy unterstützt zwei Verbindungsendpunkte. Welchen Sie verwenden, hängt von mehreren Faktoren ab:

Diagram that shows a decision tree for an I I S 7 destination.

  • Wenn es sich bei dem Ziel um einen Windows Server 2003 mit IIS 6 handelt, können Sie eine Verbindung zum Endpunkt des Webbereitstellungs-Agent-Diensts (auch bekannt als Remote-Agent-Dienst) herstellen. Der Remote-Agent-Dienst bietet Sicherheit für diese Verbindung und ist nur für Admins zugänglich.
  • Wenn es sich bei dem Ziel um Windows Server 2008 mit IIS 7 oder Windows Server 2008 R2 mit IIS 7.5 handelt UND Sie eine Verbindung mit Anmeldeinformationen herstellen, die nicht von einem Admin stammen, müssen Sie sich mit dem Web Management Service-Endpunkt verbinden. Web Deploy installiert einen Handler im Web Management Service, der es Nicht-Admins ermöglicht, nach der Authentifizierung und Autorisierung durch den Webverwaltungsdienst eine Bereitstellung durchzuführen.
  • Wenn es sich bei dem Ziel um Windows Server 2008 mit IIS 7 oder Windows Server 2008 R2 mit IIS 7.5 handelt UND Sie eine Verbindung mit Admin-Zugangsdaten herstellen, können Sie sich mit beiden Endpunkten verbinden.

Weitere Informationen

Bitte besuchen Sie unsere Anleitungstutorials auf iis.net und unsere Technet-Dokumentation.