Freigeben über


Erstellen eines Webbereitstellungspakets aus Visual Studio 2010

von Ben Byrd

Zusammenfassung

Bisher haben wir Web Deploy auf einem Webserver installiert und es Nicht-Administratoren ermöglicht, Anwendungen auf IIS 7 bereitzustellen. In dieser exemplarischen Vorgehensweise erfahren Wir, wie Entwickler Web Deploy-Pakete erstellen können, die von Benutzern bereitgestellt werden können, die Zugriff auf den Webserver haben (z. B. Administratoren oder IT/Ops-Teams). Ein Paket enthält die Dateien (Binärdateien und statische Inhalte), Datenbanken und IIS-Einstellungen, die Sie bereitstellen möchten.

In diesem Lernprogramm stellen wir das Paket vom Entwicklungscomputer auf unserem Server bereit, und wir werden es auch mithilfe der Web Deploy UI im IIS-Manager auf dem Server importieren.

Webbereitstellungspaket

In Visual Studio 2010 können Sie Web Deploy-Pakete über die Benutzeroberfläche oder mithilfe von MSBuild in der Befehlszeile erstellen. Beide Methoden generieren 1) ein Standardmäßiges Web Deploy-Paket und 2) eine Batchdatei (.cmd), die Ihnen bei der Bereitstellung des Pakets hilft.

Konfigurieren von Paket-/Veröffentlichungsoptionen:

  1. Starten Sie Visual Studio 2010, und laden Sie die Contoso University C#-Lösung.

  2. Erweitern Sie im Projektmappen-Explorer den Knoten ContosoUniversity, und doppelklicken Sie auf Eigenschaften (C#)
    Screenshot of the Solution Explorer screen with a highlight on the Properties option.

  3. Wählen Sie die Registerkarte Web packen/veröffentlichen.
    Screenshot of the Properties screen with a focus on the Package/Publish Web tab.

  4. Wählen Sie die Konfiguration für das Paket aus.
    Screenshot of the Configuration and Platform fields.
    Pakete sind konfigurationsspezifisch und Einstellungen sind pro Konfiguration, daher müssen Sie die Konfiguration auswählen und die Einstellung konfigurieren, bevor Sie ein Paket erstellen.

  5. Bereitzustellende Elemente (gilt für alle Bereitstellungsmethoden)
    Screenshot of the Items to Deploy field.
    Diese Optionen werden unabhängig davon verwendet, ob Sie mit Web Deploy oder einer anderen Veröffentlichungsmethode veröffentlichen.

    • Bereitzustellende Elemente haben drei Optionen:
      Screenshot of a drop-down list with the Only files needed to run this application option highlighted.
      Die einzigen Dateien, die zum Ausführen dieser Anwendungsoption erforderlich sind, sollten in den meisten Fällen ausreichen. Dadurch werden Quellcode, Projektdateien und andere Dateien ausgeschlossen, die normalerweise nicht zum Ausführen einer Website benötigt werden. Mit der Option "Alle Dateien in diesem Projekt " wird der oben genannte Satz sowie die Quelldateien, Projektdateien und andere verwandte Dateien veröffentlicht. Die Option "Alle Dateien in diesem Projektordner " enthält Dateien, die nicht im Projekt enthalten sind, mit Ausnahme von Dateien unter dem Ordner "Obj".
    • Die Option "Generierte Debugsymbole ausschließen" weist VS an, Debugsymbole auszuschließen, wenn die Symbole generiert werden.
    • Die Option "Dateien von App_Data Ordner ausschließen" schließt Dateien aus dem ordner "App_Data" aus.
  6. Bereitzustellende Elemente (gilt nur für Web Deploy)
    Screenshot of the Items to deploy (applies to Web Deploy only) field.
    Diese Optionen gelten nur, wenn Sie ein Web Deploy-Paket erstellen oder das Web Deploy-Protokoll für die Veröffentlichung verwenden.

    • Die Option "Alle Datenbanken einschließen" teilt web deploy mit, ob Datenbanken bereitgestellt werden sollen, die auf der Registerkarte "Sql packen/veröffentlichen " konfiguriert sind.
    • Schließen Sie alle IIS-Einstellungen wie in IIS/IIS Express konfiguriert und Anwendungspooleinstellungen ein, die von diesen Webprojektoptionen verwendet werden, werden im Artikel {LINK zu Artikel zu IIS-Einstellungen} behandelt und sind nur verfügbar, wenn Sie den lokalen Webserver auf der Registerkarte "Webeigenschaften " anstelle des Cassini-Entwicklungsservers ausgewählt haben.
  7. Konfigurieren von Webbereitstellungspaketeinstellungen
    Screenshot of the Web Deployment Package Settings section showing the zip file location and application name to be used on the destination server.

    • Das Bereitstellungspaket als ZIP-Dateioption erstellen bestimmt, ob eine ZIP-Datei oder eine Verzeichnisstruktur (Archivverzeichnis) zur Paketzeit erstellt wird. Es sei denn, Sie erstellen Pakete, die die ZIP-Dateigrößenbeschränkung von 2.147.483.647 Bytes (Int.MaxValue) aufweisen, empfehlen wir die Verwendung des ZIP-Formats.
    • Die Option "Speicherort, an dem das Paket erstellt wird" gibt den Speicherort an, an dem die Paketdatei erstellt wird. Sie müssen sicherstellen, dass Sie über Schreibberechtigungen für den von Ihnen angegebenen Speicherort verfügen.
    • Der IIS-Website-/Anwendungsname, der auf der Zielserveroption verwendet werden soll, gibt den Standardwebsite- oder Anwendungsnamen an, der auf dem Zielserver verwendet wird, wenn der Benutzer keine andere angabe.
    • Der physische Pfad der Webanwendung auf dem Zielserver (wird nur verwendet, wenn IIS-Einstellungen enthalten sind und Kennwort verwendet wird, um sichere IIS-Einstellungsoptionen zu verschlüsseln, werden im Artikel {LINK zu Artikel zu IIS-Einstellungen} behandelt.

Konfigurieren von SQL-Paket-/Veröffentlichungsoptionen:

Es gibt Szenarien, in denen Sie eine Datenbank zusammen mit Ihrer Anwendung bereitstellen möchten. Wenn Sie Ihre Anwendung beispielsweise zum ersten Mal bereitstellen, können Sie die Datenbank mit Schema und Daten bereitstellen.

Beachten Sie, dass Visual Studio 2010 keine inkrementelle Datenbankbereitstellung unterstützt.

  1. Wenn Sie Datenbanken in Ihr Paket einschließen möchten, klicken Sie auf die Registerkarte "Package/Publish SQL ".
    Screenshot of the Web Deployment Package Settings section.

  2. Wählen Sie die Konfiguration für das Paket aus.
    Screenshot of the available tabs with a focus on the Package/Publish S Q L tab.
    Pakete sind konfigurationsspezifisch, daher müssen Sie die Konfigurationseinstellung für das Paket auswählen, bevor Sie es erstellen.

  3. Wenn die Datei "Web.config" über eine Datenbankverbindungszeichenfolge verfügt, können Sie in "Web.Config " auf "Importieren" klicken. Wenn der Import abgeschlossen ist, wird eine Meldung angezeigt.
    Screenshot of the Package/Publish S Q L tab with a focus on the Database Entries field, showing the Display and Name categories.
    Folgendes wird angezeigt, wenn keine Verbindungszeichenfolge gefunden wurde:
    Screenshot of a Microsoft Visual Studio error message, stating that there was no connection string found in the Web.config.
    Wenn dieser Fehler angezeigt wird, überprüfen Sie, ob die Web.Config-Datei die gewünschte Verbindungszeichenfolge aufweist und dass die Datei nicht geändert wurde (ein Sternchen auf der Registerkarte editor zeigt an, dass die Datei geändert wurde und dass die Änderungen nicht gespeichert wurden.)

  4. Wenn eine Datenbank, die Sie Ihrem Bereitstellungspaket hinzufügen möchten, nicht unter Datenbankeinträgenaufgeführt ist, klicken Sie auf die Schaltfläche "Hinzufügen ", um die Verbindung hinzuzufügen.

  5. Nachdem alle Ihre Verbindungen hinzugefügt wurden, können Sie einen Eintrag auswählen und seine Reihenfolge in der Liste anpassen, um die Reihenfolge anzugeben, in der es dem Paket hinzugefügt und damit bereitgestellt wird, indem Sie die NACH-OBEN- und NACH-UNTEN-TASTE verwenden.

    Wenn Sie auf einen Datenbankeintrag klicken, können Sie ihn entfernen.

  6. Konfigurieren Sie als Nächstes die Details für jede Datenbank im Abschnitt "Datenbankeintragsdetails ".

    1. Wählen Sie eine Datenbank aus der Datenbankeinträgeliste aus.
      Screenshot of the Database Entry Details list.
    2. Geben Sie in der Verbindungszeichenfolge für das Zieldatenbankfeld die Verbindungszeichenfolge ein, die verwendet werden soll, wenn die Datenbank auf dem Server bereitgestellt wird. Dies ist für die Veröffentlichung mit nur einem Klick erforderlich, aber für das Verpacken wird dieser Wert als Standard verwendet, der zur Bereitstellungszeit geändert werden kann.)
      Hinweis: Dieser Wert wird NICHT verwendet, um die Verbindungszeichenfolgeninformationen in der Datei "Web.config" zu aktualisieren. Sie können Ihre Web.config-Datei für jede Buildkonfiguration mithilfe von Web.config-Transformationen aktualisieren. Weitere Informationen zu Web.config-Transformationen finden Sie unter {link to publishing article}, in diesem Artikel auf MSDNoder im Blog von Vishal Joshi hier im Abschnitt "Web.Config Transformation".
    3. Die Pull-Daten und/oder das Schema aus einer vorhandenen Datenbankoption skriptt die Datenbank, auf die die Verbindungszeichenfolge für das Quelldatenbankfeld verweist, und skriptt Schema, Daten oder beides, abhängig von der Einstellung, die Sie für Datenbankskriptingoptionenauswählen.
    4. Die letzte Option, Datenbankskripts, besteht darin, benutzerdefinierte SQL-Skripts hinzuzufügen und die Reihenfolge zu wählen, in der die Skripts ausgeführt werden. Wenn Sie das Kontrollkästchen "Daten und/oder Schema aus einer vorhandenen Datenbank abrufen" unter "Quelldatenbankinformationen" aktiviert haben, wird das Kontrollkästchen [Automatisch generierte <Datenbankskripterstellungsoption>]" angezeigt. Wenn Sie weitere Skripts ausführen möchten, klicken Sie auf "Skript hinzufügen". Navigieren Sie zum Speicherort des Skripts, und klicken Sie auf " Öffnen". Sie können sie dann im Abschnitt "Datenbankskripts " auswählen und die Pfeile nach oben und unten verwenden, um die Ausführungsreihenfolge anzupassen.
    5. Die letzte Option, Datenbankbereitstellungshinweise, ist optional.
    6. Speichern Sie nun die Änderungen an der Konfiguration, bevor Sie fortfahren.

Nachdem wir nun die Verpackungseinstellungen konfiguriert haben, können wir ein Paket erstellen.

Generieren des Pakets aus Visual Studio 2010

  1. Wählen Sie im Projektmappen-Explorer in VS 2010 Ihre WAP aus.

  2. Klicken Sie mit der rechten Maustaste auf den Netzwerkadapter.

  3. Bereitstellungspaket erstellen.
    Screenshot of the right-click menu with a focus on the Build Deployment Package option.

  4. Beachten Sie, dass die aspnetdb.mdf Datei nicht vorhanden ist, wenn Sie sich noch nie bei der Contoso University angemeldet haben. Fehler beim Erstellen des Pakets, ähnlich dem folgenden: "Verbindung mit der Datenbank kann nicht hergestellt werden:\code\ContosoUniversity\ContosoUniversity\ContosoUniversity\App_Data\aspnetdb.mdf'. Es konnte eine Verbindung mit dem Server hergestellt werden, doch während des Anmeldevorgangs trat ein Fehler auf.

    • Um diesen Fehler zu beheben, starten Sie einfach die Anwendung mit F5, und registrieren Sie einen Benutzer. Dadurch wird eine aspnetdb.mdf Datei erstellt.
  5. Das Ausgabefenster gibt Aktualisierungen an, wenn das Packen fortschreitet. Nach Abschluss des Vorgangs enthält die Ausgabe einen Link zum Paketspeicherort.
    Screenshot of the output window containing a link to the package location.

  6. Wenn Sie auf diesen Link klicken, wird der Paketspeicherort geöffnet.
    Screenshot of MyStarterWAP screen that contains a package location U R L.

Generieren des Pakets aus MSBuild

Alle oben konfigurierten Einstellungen werden in der Projektdatei für das WAP gespeichert. Sie können jetzt eine WAP oder Lösung erstellen und das Paket erstellt haben, das die oben genannten Einstellungen verwendet.

  1. Öffnen Sie eine Eingabeaufforderung mit MSBuild im Pfad (z. B. die VS-Eingabeaufforderung, die sich unter Start -> Alle Programme -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio Command Prompt (2010)) befindet.

  2. Navigieren Sie zur Projektmappe oder zum Projekt.

  3. Wenn Sie eine Lösung erstellen, sieht der Befehl wie folgt aus:

    msbuild {solution file} /p:CreatePackageOnPublish=true /p:DeployOnBuild=true
    

    Wenn Sie die Projektdatei erstellen, sieht der Befehl wie folgt aus:

    msbuild {project file} /t:Package
    

    Wenn Sie eine andere Konfiguration als die Standardkonfiguration erstellen möchten, fügen Sie den obigen Befehlen Folgendes hinzu:

    /p:Configuration={Configuration Name}
    

Bereitstellen des Pakets über die Eingabeaufforderung

Da wir nun über ein Paket verfügen, können wir es über die Eingabeaufforderung bereitstellen. Wir stellen sie als Administrator bereit.

So stellen Sie das Paket als Administrator mithilfe des Remote-Agent-Diensts bereit:

  1. Öffnen Sie eine Eingabeaufforderung.
  2. Navigieren Sie zu dem Speicherort, an dem das Paket erstellt wurde. Diese Informationen finden Sie in der Buildausgabe. Es wird ein Link im Fenster "Buildausgabe " in der Benutzeroberfläche angezeigt, und über die Befehlszeile wird der Speicherort im Abschnitt "PackageUsingManifest " der Buildausgabe aufgeführt.
  3. Geben Sie {Projektname}.deploy.cmd /t /m:{destinationServerName} /u:{administratorUser} /p:{AdministratorPassword} ein, und drücken Sie die EINGABETASTE.
  4. Wenn die Veröffentlichung des Pfads die richtigen Ergebnisse erzeugt hat, führen Sie den Befehl ohne den Parameter "/t " erneut aus.

Weitere Informationen zur Bereitstellung mithilfe der Befehlsdatei können Sie {Projektname}.deploy.cmd eingeben, um die zugehörige Infodatei zu öffnen oder den artikel hier zubesuchen.

Bereitstellen des Pakets mithilfe des IIS-Managers

Wir können auch den IIS-Manager (Internet Information Services) verwenden, um unser neu erstelltes Paket zu installieren.

So stellen Sie das Paket mithilfe des Internetinformationsdienste-Managers (inetmgr) bereit:

  1. Führen Sie "Inetmgr.exe" aus.

  2. Erweitern Sie den Serverknoten in inetmgr.

  3. Erweitern Sie den Knoten "Websites ".

  4. Klicken Sie mit der rechten Maustaste auf die Website, in die Sie die Anwendung importieren möchten.

  5. Bereitstellung auswählen –> Anwendung importieren...
    Screenshot of the right-click menu over the Connections pane, with a focus on the Deploy drop-down and Import Application option.

  6. Geben Sie den Speicherort des Pakets in den Paketpfad ein: Textfeld.

  7. Klicken Sie auf Weiter.

  8. Sie befinden sich jetzt auf der Seite "Inhalt des Pakets auswählen". Indem Sie Elemente überprüfen und deaktivieren, können Sie anpassen, was installiert ist. In diesem Screenshot sehen Sie:

    • Es gibt ein Element zum Erstellen der Anwendung.
    • Dateiinhalt für die Website.
    • Zwei Elemente, die die ACLs auf der Website konfigurieren.
    • Datenbankskript
      Screenshot of the Import Application Package screen with the Web Application option being highlighted in the Package contains field.
  9. Klicken Sie nach dem Auswählen der zu installierenden Elemente auf "Weiter".

  10. Jetzt müssen Sie die Paketparameter überprüfen.

    • Der Anwendungspfad ist der Speicherort zum Installieren der Anwendung, da ich beschlossen habe, aus dem Standardwebsiteknoten in inetmgr zu importieren, der der Stamm ist, und ich kann einen Anwendungsnamen in das Textfeld eingeben, in dem die Installation erfolgen soll.
    • Der erste Parameter "Connection String " ist die Datenbank, in der das Paketskript installiert werden soll.
    • Der zweite Parameter "Connection String " ist der Wert, der in der Datei "web.config" platziert werden soll. Mit den beiden verschiedenen Parametern können Sie die Datenbank als privilegierteren Benutzer installieren und die Anwendung mit einem Konto mit niedrigeren Berechtigungen ausführen.
      Screenshot of the Import Application Package screen showing the Application Path and Connection String fields.
  11. Klicken Sie auf Weiter.

  12. Wenn die Anwendung vorhanden ist, werden Sie aufgefordert, zusätzliche Dateien zu löschen. Wählen Sie die gewünschte Option aus, und klicken Sie auf "Weiter".
    Screenshot of the Overwrite Existing Files screen with a focus on the Next option.

  13. Sie werden wissen, dass Sie sich auf der Zusammenfassungsseite befinden. Überprüfen Sie die Informationen, und klicken Sie auf "Fertig stellen".
    Screenshot of the Installation Progress and Summary page with a focus on the Finish option.

  14. Jetzt inetmgr können Sie auf den Link "Durchsuchen" unter " Anwendung verwalten" klicken, um Ihre Website anzuzeigen.
    Screenshot of the Actions pane with a focus on the Browse link under the Manage Application section.