Freigeben über


Web Deploy-Parametrisierung

vom Web-Deploy-Team

Einführung in die Parametrisierung

Die Webanwendungsentwicklung umfasst am häufigsten die Bereitstellung von Code in verschiedenen Umgebungen: Entwicklung, Staging oder Produktionsserver. Jede Umgebung verwendet möglicherweise einen anderen Satz von Ressourcen, z. B. Datenbankverbindungsinformationen, und Web Deploy wird mit Features erstellt, die beim Transformieren von Webanwendungen bei der Bereitstellung in verschiedenen Umgebungen helfen. Um eine Anwendung während der Bereitstellung zu transformieren, können unterschiedliche Teile der Anwendungen "parametrisiert" werden, und zur Bereitstellungszeit nimmt Web Deploy die Eingabe eines Benutzers an, um verschiedene Informationen innerhalb der Anwendung zu ersetzen.

Verschiedene Möglichkeiten zum Bereitstellen von Anwendungen: Livesynchronisierung und Visual Studio

Das Web Deploy-Tool kann verwendet werden, um eine Anwendung auf verschiedene Weise bereitzustellen. Eine Webanwendung kann live synchronisiert werden, von einem Server (möglicherweise dem Entwicklungsserver) mit einem anderen Server (z. B. dem Server, auf dem die Anwendung im Web gehostet wird). Webanwendungen können auch in eine .zip Datei gepackt werden, um von einer breiteren, allgemeineren Zielgruppe von Entwicklern heruntergeladen und installiert zu werden. Dies ist ein Modell, das häufig von "plattformähnlichen" Apps (z. B. Wordpress) verwendet wird. Schließlich wird Web Deploy hinter den Kulissen von Visual Studio beim Entwickeln und Bereitstellen von Webanwendungsprojekten (WAP) verwendet. In diesem Fall parametrisiert Visual Studio automatisch die meisten erforderlichen Teile der Webanwendungen mit der Möglichkeit, bei Bedarf benutzerdefinierte Parameter zu erstellen.

Erstellen und Parametrisieren einer zu bereitstellenden Anwendung

Microsoft bietet eine einfache Möglichkeit, mehr als 50 beliebte Webanwendungen zu installieren, z. B. Wordpress, Joomla, Aspx und DotNetNuke. Diese Anwendungen können relativ schnell und einfach installiert werden. Hinter den Kulissen verwenden diese UIs das Web-Deploy-Tool, um die Anwendung aus einem .zip-Paket zu installieren. Um ein Anwendungspaket zu erstellen, damit es mithilfe eines dieser Tools installiert werden kann, müssen eine Reihe von Schritten ausgeführt werden, einschließlich parametrisierender Teile der Anwendung.

Die folgenden Schritte sind erforderlich, um eine Anwendung in ein .zip Paket umzuwandeln, das bereitgestellt werden kann:

  1. Erstellen einer Anwendung.
  2. Erstellen Sie eine "Manifestdatei". Diese Datei teilt dem Web Deploy-Tool die verschiedenen Aktionen mit, die zum Installieren der Anwendung erforderlich sind. Dazu gehören z. B. das Kopieren von Dateien und das Einrichten einer Datenbank.
  3. Erstellen Sie eine Parameterdatei. Dies ist die "Parameterisierungsdatei", die Web Deploy verwendet, um die Teile der Anwendung zu identifizieren, die zum Zeitpunkt der Installation basierend auf der Benutzereingabe transformiert werden müssen.
  4. Erstellen Sie eine .zip Datei, die die Anwendung, die Manifestdatei und die Parameterdatei enthält.

In diesem Artikel werden die einzelnen Schritte ausführlich beschrieben.

Schritt 1 – Erstellen einer Anwendung

Derzeit gibt es keine einfache Möglichkeit, eine Anwendung zum Experimentieren mit der Webbereitstellungsparameterisierung zu erstellen, mit Ausnahme des Klonens aus einer vorhandenen Anwendung.

Jetzt haben Sie eine Anwendung, die gepackt und parametrisiert werden kann, damit andere Entwickler sie herunterladen und installieren können. Der nächste Schritt besteht darin, eine Datei einzurichten, die Web Deploy angibt, welche Schritte zum Installieren der Anwendung erforderlich sind.

Schritt 2 : Erstellen einer "Manifestdatei"

Das Web Deploy-Tool kann eine Reihe von Funktionen ausführen, einschließlich Kopieren von Dateien, Webserverkonfigurationseinstellungen und Datenbanken. Jede dieser Funktionen wird durch einen Web Deploy "Provider" ermöglicht. Um die soeben erstellte Anwendung zu installieren, verwenden Sie den iisApp-Anbieter , mit dem Dateien kopiert und die Anwendung auf dem Server erstellt werden kann. der setAcl-Anbieter , der die erforderlichen Dateiberechtigungen festlegt; und der dbFullSql-Anbieter , der die Datenbank einrichte. Um Web Deploy während des Setups anweisen zu können, mehrere Anbieter zu verwenden, müssen Sie eine Manifest.xml Datei erstellen, die diese drei Anbieter wie folgt deklariert (Sie können ein Beispiel von hier kopieren):

Screenshot zeigt das Manifest-XML-Symbol.

<?xml version="1.0" encoding="utf-8" ?>
<msdeploy.iisApp>
  <iisApp path="Vacation Pictures" />
  <setAcl path="Vacation Pictures/App_Data" setAclAccess="Write, ReadAndExecute" />
  <dbFullSql path="CreateDBAndUser.sql" />
  <dbFullSql path="VacPicDBSchema.sql" />
</msdeploy.iisApp>

Sehen wir uns jeden dieser Einträge genauer an.

IISApp-Anbieter

Der iisApp-Einstieg verweist auf den Ordner, in dem sich der Anwendungsinhalt befindet. Beispiel:

<iisApp path="Vacation Pictures" />

Der Pfadwert wäre anders, wenn die Anwendung einen anderen Namen hatte.

SetAcl-Anbieter

Der SetAcl-Eintrag weist Web Deploy an, beim Installieren der Anwendung Lese-, Schreib- und Ausführungsberechtigungen für das Verzeichnis "App_Data" zu erteilen. Beispiel:

<setAcl path="Vacation Pictures/App_Data" setAclAccess="Write, ReadAndExecute" />

Für andere Anwendungen sind möglicherweise spezielle Berechtigungen für andere Ordner erforderlich. In diesem Fall würden Sie für jede erforderliche Berechtigungseinstellung einen anderen SetAcl-Eintrag erstellen.

DbFullSQL-Anbieter

Die DbFullSQL-Anbietereinträge verweisen auf verschiedene SQL-Skripts, die zum Erstellen einer Datenbank und eines Benutzers ("CreateDBAndUser.sql") und zum Einrichten der Datenbanktabellen ("VacPicDBSchema.sql") zur Installation verwendet werden.

Das skript CreateDBAndUser.sql ist ein recht einfaches Skript, das von hier kopiert werden kann:

Screenshot des Symbols

Die VacPicDBSchema.sql ist das Skript, das alle Tabellen in der Datenbank erstellt, die die Anwendung verwendet. Diese Datei kann mit dem Befehlszeilentool Web Deploy erstellt werden. Navigieren Sie in der Befehlszeile zu dem Ort, an dem Web Deploy installiert ist (in der Regel %programfiles%\IIS\Microsoft Web Deploy <LatestVersion>), und geben Sie den folgenden Befehl ein:

msdeploy -verb:sync -source:dbfullsql="data source=.\SQLExpress;initial catalog=PhotoGallery;user id=sa;password=*" -dest:dbfullsql="c:\VacPicDBSchema.sql"

Ersetzen Sie das Sternchen (*) durch das entsprechende SQL-Administratorkennwort.

Auf grundlegender Ebene verwendet der obige Befehl den DbFullSql-Anbieter , um Daten aus einer Datenbank mithilfe einer Datenbankverbindungszeichenfolge ("-source:dbfullsql=...") zu kopieren und in eine Datenbankskriptdatei ("-dest:dbfullsql=...") zu kopieren.

Schritt 3 : Erstellen einer Parameterdatei

Nachdem Sie die Manifestdatei erstellt haben, die Web Deploy angibt, wie die Anwendung installiert werden soll, müssen Sie eine Parameterdatei erstellen, die Web Deploy angibt, wie bestimmte Einstellungen transformiert werden, damit die Anwendung so angepasst werden kann, dass sie in der Bereitstellungsumgebung eines bestimmten Benutzers funktioniert.

Die grundlegenden Teile, die für die Transformation nützlich wären, sind:

  • Der Anwendungsname: Wenn der Endbenutzer, der Ihre Anwendung installiert, den Anwendungsnamen ändern möchte, müssen Sie den Anwendungsnamen parametrisieren.
  • Der Datenbankname: Ein Benutzer muss ihre Anwendung möglicherweise so konfigurieren, dass sie in einer Datenbank ausgeführt wird, die einen anderen Namen verwendet. In diesem Zusammenhang müssen Sie die Datenbankverbindungsinformationen parametrisieren.

Web Deploy liest Parametrisierungsinformationen aus einer XML-Datei. In diesem Fall rufen Sie die Datei Parameters.xmlauf. Für diese Demo kann die Parameterdatei von hier kopiert werden und sieht wie folgt aus (auf der Website kann diese XML-Datei in ein Codefeld wie auf dieser Seite erweitert werden):

Screenshot zeigt das Symbol

Als Nächstes lernen Sie, den Anwendungsnamen und den Datenbanknamen zu parametrisieren.

Parametrisieren des Anwendungsnamens

Web Deploy-Parameterisierung kann verwendet werden, um verschiedene Arten von Eingaben zu transformieren. Normalerweise umfasst dies die Suche nach Text in einer XML-Datei oder Textdatei und das Ersetzen durch unterschiedlichen Text. Im Zusammenhang mit dem Anwendungsnamen werden das Kopieren der Datei und das Erstellen der Website auf dem Zielcomputer von einem Web Deploy-Anbieter durchgeführt. Um den Anwendungsnamen zu parametrisieren, müssen Sie den Anbieter, den Sie zuvor in der datei Manifest.xml deklariert haben, parametrisieren.

Der Anbieter in der Manifestdatei kann als Quellanbieter betrachtet werden, der Informationen aus dem Anwendungspaket liest, das ein Benutzer herunterlädt. Wenn die Anwendung installiert wird, wird hinter den Kulissen ein Zielanbieter verwendet, um den Inhalt zu kopieren und eine Website auf dem Computer des Benutzers zu erstellen. Die datei Manifest.xml enthält die Quellanbieterinformationen , damit ein Benutzer den Anwendungsnamen ändern kann; Sie müssen den Anbieter parametrisieren, der in der datei Manifest.xml definiert wurde.

In der oben verknüpften Parameters.xml Datei erfolgt diese Parameterisierung mit dem ersten XML-Eintrag:

<parameter 
  name="Application Path" 
  description="Full site path where you would like to install your application (i.e., Default Web Site/PhotoGallery)" 
  tags="iisapp">
  <parameterValidation kind="AllowEmpty" />
  <parameterEntry kind="ProviderPath" scope="iisapp" match="Vacation Pictures" />
</parameter>

Das wichtige ZU beachtende XML-Tag ist parameterEntry. Dies teilt Web Deploy einige Dinge mit: eine, dass Sie einen Anbieter im Manifest parametrisieren (kind="ProviderPath"); zwei, dass Sie den Anbieter iisApp parametrisieren (scope="iisapp"); schließlich möchten Sie nur Einträge in der Manifestdatei ersetzen, die den Wert "Urlaubsbilder" enthalten.

Der zweite Eintrag in der Parameterdatei ('name="SetAclParameter1"') stellt lediglich sicher, dass der setAcl-Anbieter in unserer Manifest.xml-Datei denselben Namen verwendet, der vom Benutzer für den iisApp-Anbieter eingegeben wurde, der mit der Zeile "defaultValue="{Application Path}/App_Data" erreicht wird. Der Wert in den Klammern {Application Path} verweist auf den Namen des ersten Parameters.

Parametrisieren des Datenbanknamens

Der Rest der Einträge in der Parameters.xml Datei befasst sich mit der Parametrisierung der Datenbankverbindungsinformationen. Die 2. bis 6. Einträge in der Parameterdatei sammeln Informationen aus der Benutzeroberfläche, wenn ein Benutzer die Anwendung installiert. Diese Einträge fordern den Benutzer auf, einen Datenbankserver anzugeben, der die Datenbank für die Anwendung hosten wird ("Datenbankserver"), den Namen der zu erstellenden Datenbank ("Datenbankname"), den Benutzer, der mit der Datenbank verbunden werden soll ("Datenbankbenutzer"), und das Kennwort für diesen Benutzer ("Datenbankkennwort"). Um die Datenbank und den Benutzer zu erstellen, benötigt Web Deploy auch den Datenbankadministratorbenutzer ("Datenbankadministrator") und das Kennwort ("Datenbankadministratorkennwort").

Schließlich werden alle vom Benutzer eingegebenen Informationen von Web Deploy verwendet, um die Skripts auszuführen, die die Datenbank (CreateDBAndUser.sql) erstellen und die Tabellen (VacPicDBSchema.sql) einrichten. Dies sind die 7. und 8. Einträge in Parameters.xml:

<parameter 
  name="Create DB and DB User Connection String" 
  description="Automatically sets the connection string for the connection request."
  defaultValue="Server={Database Server};Database={Database Name};uid={Database Administrator};Pwd=*;" <!-- replace Pwd=* with Pwd={Database Administrator Password} -->
  tags="Hidden,SQLConnectionString,Validate">
  <parameterEntry type="ProviderPath" scope="dbfullsql" match="CreateDBAndUser.sql" />
</parameter>
<parameter 
  name="Populate DB Connection String" 
  description="Automatically sets the connection string for the connection request." 
  defaultValue="Server={Database Server};Database={Database Name};uid={Database Administrator};Pwd=*;" <!-- replace Pwd=* with Pwd={Database Administrator Password} -->
  tags="Hidden,SQLConnectionString,Validate">
  <parameterEntry type="ProviderPath" scope="dbfullsql" match="VacPicDBSchema.sql" />
</parameter>

Da Web Deploy einen Anbieter zum Synchronisieren von Datenbankinformationen verwendet (wie in der datei Manifest.xml deklariert), sind diese beiden Parametereinträge "type="ProviderPath".

Unsere "Urlaubsbilder"-Anwendung verfolgt auch die Datenbankverbindung in der Web.config Datei. Diese Parameterisierung wird durch den endgültigen Eintrag in Parameters.xmlbehandelt.

Schritt 4 : Erstellen einer ZIP-Datei, die die Anwendung, die Manifestdatei und die Parameterdatei enthält

Sie verfügen jetzt über die grundlegenden Bausteine, die zum Bereitstellen der Anwendung erforderlich sind, damit Sie die Anwendung jetzt in das entsprechende Paketformat packen können. Das Paket muss lediglich die Parameters.xml Datei, die Manifest.xml Datei und die Datenbankinstallationsskripts auf der obersten Ebene (Stammebene) des ZIP-Pakets und den Anwendungsinhalt in einem Unterordner enthalten.

Klicken Sie in der unteren linken Ecke von WebMatrix auf die Registerkarte " Website ", um zum Inhalt der Website zu navigieren.

Screenshot des Dialogfelds

Die Websiteseite verfügt über einen Link zu der Stelle, an der sich der Anwendungsinhalt befindet:

Der Screenshot zeigt die URL und den Pfad des Anwendungsinhalts.

Klicken Sie auf den Link, um zum Anwendungsinhalt zu navigieren. Navigieren Sie in diesem Ordner zu einer anderen Ebene, und erstellen Sie einen neuen Ordner namens "VacationPicsWPIInstaller". Kopieren Sie den Anwendungsinhaltsordner, die dateien Manifest.xml und Parameters.xml sowie die Datenbankinstallationsskripts in den neu erstellten Ordner:

Screenshot des Anwendungsinhaltsordners mit Dateien und Datenbankinstallationsskripts.

Wenn alle Dateien ausgewählt sind, klicken Sie mit der rechten Maustaste auf>Senden an>komprimierten (gezippte) Ordner:

Der Screenshot zeigt die Dateien, die mit der rechten Auswahl die Optionen

Diese gezippte Datei kann beliebig benannt werden, aber um besser mit der Demo zu funktionieren, nennen Sie sie "VacationPicsWPIInstaller.zip".

Dieses Paket enthält jetzt alles, was zum Bereitstellen benötigt wird.