Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
Starten Sie Visual Studio 2010, und laden Sie die Contoso University C#-Lösung.
Erweitern Sie im Projektmappen-Explorer den Knoten ContosoUniversity, und doppelklicken Sie auf Eigenschaften (C#)
Wählen Sie die Konfiguration für das Paket aus.
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.Bereitzustellende Elemente (gilt für alle Bereitstellungsmethoden)
Diese Optionen werden unabhängig davon verwendet, ob Sie mit Web Deploy oder einer anderen Veröffentlichungsmethode veröffentlichen.- Bereitzustellende Elemente haben drei Optionen:
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.
- Bereitzustellende Elemente haben drei Optionen:
Bereitzustellende Elemente (gilt nur für Web Deploy)
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.
Konfigurieren von Webbereitstellungspaketeinstellungen
- 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.
Wenn Sie Datenbanken in Ihr Paket einschließen möchten, klicken Sie auf die Registerkarte "Package/Publish SQL ".
Wählen Sie die Konfiguration für das Paket aus.
Pakete sind konfigurationsspezifisch, daher müssen Sie die Konfigurationseinstellung für das Paket auswählen, bevor Sie es erstellen.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.
Folgendes wird angezeigt, wenn keine Verbindungszeichenfolge gefunden wurde:
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.)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.
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.
Konfigurieren Sie als Nächstes die Details für jede Datenbank im Abschnitt "Datenbankeintragsdetails ".
- Wählen Sie eine Datenbank aus der Datenbankeinträgeliste aus.
- 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". - 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.
- 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.
- Die letzte Option, Datenbankbereitstellungshinweise, ist optional.
- Speichern Sie nun die Änderungen an der Konfiguration, bevor Sie fortfahren.
- Wählen Sie eine Datenbank aus der Datenbankeinträgeliste aus.
Nachdem wir nun die Verpackungseinstellungen konfiguriert haben, können wir ein Paket erstellen.
Generieren des Pakets aus Visual Studio 2010
Wählen Sie im Projektmappen-Explorer in VS 2010 Ihre WAP aus.
Klicken Sie mit der rechten Maustaste auf den Netzwerkadapter.
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.
Das Ausgabefenster gibt Aktualisierungen an, wenn das Packen fortschreitet. Nach Abschluss des Vorgangs enthält die Ausgabe einen Link zum Paketspeicherort.
Wenn Sie auf diesen Link klicken, wird der Paketspeicherort geöffnet.
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.
Ö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.
Navigieren Sie zur Projektmappe oder zum Projekt.
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:
- Öffnen Sie eine Eingabeaufforderung.
- 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.
- Geben Sie {Projektname}.deploy.cmd /t /m:{destinationServerName} /u:{administratorUser} /p:{AdministratorPassword} ein, und drücken Sie die EINGABETASTE.
- 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:
Führen Sie "Inetmgr.exe" aus.
Erweitern Sie den Serverknoten in inetmgr.
Erweitern Sie den Knoten "Websites ".
Klicken Sie mit der rechten Maustaste auf die Website, in die Sie die Anwendung importieren möchten.
Geben Sie den Speicherort des Pakets in den Paketpfad ein: Textfeld.
Klicken Sie auf Weiter.
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:
Klicken Sie nach dem Auswählen der zu installierenden Elemente auf "Weiter".
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.
Klicken Sie auf Weiter.
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".
Sie werden wissen, dass Sie sich auf der Zusammenfassungsseite befinden. Überprüfen Sie die Informationen, und klicken Sie auf "Fertig stellen".
Jetzt inetmgr können Sie auf den Link "Durchsuchen" unter " Anwendung verwalten" klicken, um Ihre Website anzuzeigen.