Share via


Gewusst wie: Installieren eines Bereitstellungspakets mit der von Visual Studio erstellten Datei „deploy.cmd“

Bei der Erstellung eines Webbereitstellungspakets in Visual Studio wird eine CMD-Datei erstellt, mit der Sie das Paket installieren können. Diese CMD-Datei enthält die tatsächlichen Web Deploy-Befehle zum Installieren des Pakets. Die CMD-Datei wird bereitgestellt, um die Syntax zur Befehlszeileninstallation für Sie zu vereinfachen, da die Web Deploy-Befehle lang und komplex sein können.

Stellen Sie vor dem Starten der CMD-Datei sicher, dass der Zielserver ordnungsgemäß eingerichtet ist. Wenn das Ziel ein Remoteserver ist, müssen Sie sicherstellen, dass eine entsprechende Verbindung mit dem Remoteserver besteht und dass Sie über die erforderlichen Berechtigungen für den Remoteserver verfügen. Beim Start der CMD-Datei werden Optionen an die Datei übergeben, die diese wiederum an Web Deploy übergibt.

In diesem Thema wird die Syntax zum Aufrufen der CMD-Datei erläutert. Es enthält eine Übersicht über die Voraussetzungen zum Aufrufen der CMD-Datei und Links zu anderen Ressourcen mit ausführlicheren Setupinformationen.

Auswählen einer Installationsmethode

Dieser Abschnitt bietet eine Übersicht über die Optionen zur lokalen und Remoteinstallation des Pakets. Anschließend werden die Serverkonfigurationsprozeduren für jede Option erläutert. Die Serverkonfigurationsprozeduren zur Remotebereitstellung geben eine Übersicht, die Ihnen bei der Auswahl der besten Methode für Ihr Szenario helfen soll. Jede dieser Prozeduren enthält einen Link zu einem Thema auf der Microsoft IIS-TechNet-Website, auf der Sie ausführliche Anweisungen finden.

Wenn Sie ein Paket (beispielsweise zu Testzwecken) auf einem Entwicklungscomputer bereitstellen, müssen Sie nur die Prozedur befolgen, in der beschrieben wird, wie ein Computer zur prozessinternen lokalen Bereitstellung konfiguriert wird.

Wenn Sie das Paket bei einem Hostinganbieter (Drittanbieter) oder auf Zielservern bereitstellen, die nicht von Ihnen verwaltet werden, wird die zu verwendende Methode vom Hostinganbieter oder den Serveradministratoren bestimmt. In diesem Fall können Sie die Übersicht über die Optionen überspringen. Stattdessen können Sie den Teil der Prozedur lesen, in dem die Entwicklungscomputeranforderungen für die von Ihnen verwendete Methode aufgeführt sind.

Die folgenden Installationsmethoden stehen zur Verfügung:

  • Prozessinterne Installation des Pakets auf dem lokalen Server (auf dem die CMD-Datei ausgeführt wird).

    Sie benötigen Administratorrechte für den lokalen Server. Diese Methode wird normalerweise von Entwicklern verwendet, die ein Paket auf dem Entwicklungscomputer bereitstellen, um mithilfe von IIS lokale Tests durchzuführen.

  • Installation auf einem Remoteserver mit dem Webverwaltungsdienst (WMSvc) und dem Webbereitstellungshandler.

    Hostinganbieter (Drittanbieter) richten ihre Server normalerweise für diese Bereitstellungsmethode ein, damit die Anwendungen von den Kunden selbst bereitgestellt werden können. Der Hostinganbieter muss dem Kunden jedoch keine Administratorrechte für die Server erteilen. Diese Methode wird auch häufig in Unternehmensumgebungen verwendet, in denen die IT-Abteilung den Entwicklern keine Administratorrechte für die Test- oder Produktionsserver erteilen möchte.

    Diese Methode erfordert IIS 7. Eine Person, die Administratorrechte für den Zielserver besitzt, richtet mit IIS-Manager ein Konto ein, das Sie zur Bereitstellung verwenden können. Sie verwenden die Anmeldeinformationen für dieses Konto bei der Bereitstellung. Ein Vorteil dieser Methode ist, dass zur Bereitstellung auf dem Zielserver keine Administratorrechte erforderlich sind. Ein Nachteil ist, dass in der Regel keine Bereitstellungsaufgaben ausgeführt werden können, die Administratorrechte erfordern, z. B. Konfigurieren von IIS-Einstellungen.

  • Installation auf einem Remoteserver mit dem Webbereitstellungs-Agent-Dienst (MsDepSvc). Dieser Dienst wird auch als Webbereitstellungs-Remotedienst oder einfach als Remote-Agent bezeichnet.

    Sie benötigen Administratorrechte für den Remoteserver. Ein Vorteil dieser Methode ist, dass es keine Einschränkungen bei der Bereitstellung gibt, da Sie Administrator auf dem Zielserver sind. Sie können diese Methode nicht verwenden, wenn die Person, die die Bereitstellung ausführt, keine Administratorrechte für den Zielserver besitzt.

  • Installation auf einem Remoteserver mit der Web Deploy tempAgent-Anbietereinstellung.

    Wie auch für Remote-Agent müssen Sie Administratorrechte für den Zielserver besitzen. Der Vorteil dieser Methode gegenüber dem Remote-Agent ist, dass Web Deploy weder auf dem Computer, auf dem Sie die Befehlsdatei ausführen, noch auf dem Zielcomputer installiert sein muss. Sie können Web Deploy von einem freigegebenen Ordner auf einem Server ausführen, auf dem Web Deploy installiert ist. Daher ist eine Bereitstellung auf mehreren Servern möglich, ohne zuerst Web Deploy auf jedem Server installieren zu müssen. Sie müssen auch nicht auf jedem Server ein Update durchführen, wenn neue Versionen von Web Deploy freigegeben werden, oder sicherstellen, dass auf dem Quell- und Zielcomputer die gleiche Version von Web Deploy installiert ist. Die tempAgent-Anbietereinstellung erfordert im Vergleich zum Remote-Agent zusätzliche Einrichtungsschritte auf den Zielservern. Wenn jedoch mehrere Server verwaltet werden müssen, ist der Arbeitsaufwand i. d. R. langfristig geringer.

Weitere Informationen darüber, wie Sie die für Ihr Szenario geeignete Option auswählen können, finden Sie im Thema zum Verwenden von Web Deploy über eine Remoteverbindung auf der Microsoft TechNet-Website.

Der Rest dieses Abschnitts enthält Prozeduren, die eine Übersicht über das Konfigurieren von Servern für die einzelnen Paketinstallationsmethoden bieten.

Konfigurieren eines Servers zur lokalen Bereitstellung

Die folgende Prozedur beschreibt, wie ein Server zur prozessinternen lokalen Paketinstallation eingerichtet wird.

So richten Sie einen Server zur lokalen prozessinternen Bereitstellung ein

  • Stellen Sie sicher, dass die folgende Software auf dem Server installiert ist:

    • IIS 5.1, IIS 6 oder IIS 7.

    • .NET Framework 2.0 SP1 oder eine höhere Version, sofern für die zu installierende Webanwendung erforderlich.

    • Web Deploy (dieselbe Version, die zum Erstellen des Pakets verwendet wurde)

    Informationen zum Installieren von IIS, .NET Framework und Web Deploy mit dem Webplattform-Installer finden Sie unter Microsoft-Webplattform-Installer 2.0 auf der Microsoft-Website.

Konfigurieren von Servern für den Webverwaltungsdienst

Die folgende Prozedur bietet eine Übersicht über das Einrichten von Quell- und Zielcomputern, damit Sie Bereitstellungspakete mit dem Webverwaltungsdienst (WMSvc) und dem Webbereitstellungshandler installieren können. Weitere Informationen und ausführliche Anweisungen finden Sie unter Konfigurieren des Webbereitstellungshandlers auf der Microsoft TechNet-Website oder unter Konfigurieren des Webbereitstellungshandlers auf der IIS. net-Website.

So richten Sie Server zum Verwenden des Webverwaltungsdiensts für die Bereitstellung ein

  1. Stellen Sie sicher, dass die folgende Software auf dem Computer installiert ist, auf dem Sie die Datei "deploy.cmd" ausführen:

    • Web Deploy (dieselbe Version, die zum Erstellen des Pakets verwendet wurde)
  2. Stellen Sie sicher, dass die folgende Software auf dem Zielserver installiert ist:

    • IIS 7.

    • .NET Framework 2.0 SP1 oder eine höhere Version, sofern für die zu installierende Webanwendung erforderlich.

    • Web Deploy (dieselbe Version, die zum Erstellen des Pakets verwendet wurde)

    Informationen zum Installieren von IIS, .NET Framework und Web Deploy mit dem Webplattform-Installer finden Sie unter Microsoft-Webplattform-Installer 2.0 auf der Microsoft-Website.

  3. Konfigurieren Sie auf dem Zielserver den Webverwaltungsdienst (WMSvc), indem Sie folgende Schritte ausführen:

    1. Fügen Sie den Rollendienst "Verwaltungsdienst" hinzu.

    2. Aktivieren Sie Remoteverbindungen.

    3. Erstellen Sie ein Benutzerkonto, das zur Paketinstallation verwendet werden soll.

    4. Fügen Sie Delegierungsregeln für das Benutzerkonto hinzu.

  4. Stellen Sie auf dem Zielcomputer sicher, dass der Anwendungspool für die IIS-Website, auf der Sie das Paket installieren, auf die für das Paket erforderliche .NET Framework-Version festgelegt ist. (Wenn vom Paket ein Webanwendungsname, jedoch kein Websitename angegeben wird, wird das Paket auf der Standardwebsite installiert.)

Konfigurieren von Servern für den Webbereitstellungs-Remotedienst

Die folgende Prozedur bietet eine Übersicht über das Einrichten von Quell- und Zielcomputern, damit Sie Pakete mit dem Webbereitstellungs-Agent-Dienst (MsDepSvc) remote installieren können. Weitere Informationen finden Sie unter Webbereitstellungs-Remotedienst auf der Microsoft TechNet-Website.

So richten Sie Server zum Verwenden des Webbereitstellungs-Agent-Diensts für die Bereitstellung ein

  1. Stellen Sie sicher, dass die folgende Software auf dem Server installiert ist, auf dem Sie die Datei "deploy.cmd" ausführen:

    • Web Deploy (dieselbe Version, die zum Erstellen des Pakets verwendet wurde)
  2. Stellen Sie sicher, dass die folgende Software auf dem Zielserver installiert ist:

    • IIS 5.1, IIS 6 oder IIS 7.

    • .NET Framework 2.0 SP1 oder eine höhere Version, sofern für die zu installierende Webanwendung erforderlich.

    • Web Deploy (dieselbe Version, die zum Erstellen des Pakets verwendet wurde)

    Informationen zum Installieren von IIS, .NET Framework und Web Deploy mit dem Webplattform-Installer finden Sie unter Microsoft-Webplattform-Installer 2.0 auf der Microsoft-Website.

  3. Stellen Sie auf dem Zielserver sicher, dass der MSDepSvc-Dienst konfiguriert ist und gestartet wird.

  4. Konfigurieren Sie auf dem Zielserver die Firewall, damit HTTP-Datenverkehr den Port 80 passieren kann.

  5. Stellen Sie auf dem Zielcomputer sicher, dass der Anwendungspool für die IIS-Website, auf der Sie das Paket installieren, auf die für das Paket erforderliche .NET Framework-Version festgelegt ist. (Wenn vom Paket ein Webanwendungsname, jedoch kein Websitename angegeben wird, wird das Paket auf der Standardwebsite installiert.)

Konfigurieren von Servern für die tempAgent-Anbietereinstellung

Die folgende Prozedur bietet eine Übersicht über das Einrichten der Quell- und Zielcomputer für die Remoteinstallation mit der Web Deploy tempAgent-Anbietereinstellung. Weitere Informationen finden Sie unter Web Deploy bei Bedarf auf der Microsoft TechNet-Website.

So richten Sie Server zur Verwendung der Web Deploy-tempAgent-Anbietereinstellung für die Bereitstellung ein

  1. Stellen Sie sicher, dass folgende Software auf dem Quellcomputer installiert ist:

    • Webbereitstellungs-Agent-Dienst (MsDepSvc)

      Hinweis

      Standardmäßig wird der Webbereitstellungs-Agent-Dienst nicht als Teil von Visual Studio installiert.Sie können ihn installieren, indem Sie das Webbereitstellungstool-Setup ausführen und "Remote-Agent-Dienst" auswählen.

  2. Stellen Sie sicher, dass die folgende Software auf dem Zielserver installiert ist:

    • IIS 5.1, IIS 6 oder IIS 7.

    • .NET Framework 2.0 SP1 oder eine höhere Version, sofern für die zu installierende Webanwendung erforderlich.

    Informationen zum Installieren von IIS und .NET Framework mit dem Webplattform-Installer finden Sie unter Microsoft-Webplattform-Installer 2.0 auf der Microsoft-Website.

  3. Konfigurieren Sie die Firewall auf dem Zielserver so, dass folgende Daten passieren können:

    • HTTP-Datenverkehr durch Port 80

    • WMI-Datenverkehr

  4. Stellen Sie auf dem Zielserver sicher, dass der Windows-Verwaltungsinstrumentation (WMI)-Dienst ausgeführt wird.

  5. Stellen Sie auf dem Zielserver sicher, dass dort ein freigegebener Ordner vorhanden ist, in den die temporären Web Deploy-Programmdateien kopiert werden können.

  6. Stellen Sie auf dem Zielserver sicher, dass der Webbereitstellungs-Agent-Dienst (MSDepSvc) nicht installiert ist. Wenn der Dienst installiert ist, beeinträchtigt dies den Bereitstellungsprozess.

  7. Stellen Sie sicher, dass Sie zum Ausführen der Bereitstellungsbefehlsdatei die Anmeldeinformationen des Benutzerkontos verwenden, das für den Remoteserver über die Rechte eines lokalen Administrators verfügt.

  8. Stellen Sie auf dem Zielcomputer sicher, dass der Anwendungspool für die IIS-Website, auf der Sie das Paket installieren, auf die für das Paket erforderliche .NET Framework-Version festgelegt ist. (Wenn vom Paket ein Webanwendungsname, jedoch kein Websitename angegeben wird, wird das Paket auf der Standardwebsite installiert.)

Ausführen der Befehlsdatei

Es empfiehlt sich, Web Deploy zuerst im Testmodus auszuführen, um zu überprüfen, ob die Bereitstellung wie erwartet funktioniert. Auf diese Weise können Sie Änderungen vornehmen, wenn etwas Unerwartetes geschieht, bevor die tatsächliche Bereitstellung stattfindet. Die folgende Prozedur beschreibt, wie die Befehlsdatei für einige typische Szenarien ausgeführt wird.

So führen Sie die Bereitstellung mit der Befehlsdatei durch

  1. Stellen Sie sicher, dass sich das Paket (ProjectName.zip), die Datei ProjectName.SetParameters.xml und die Datei ProjectName.deploy.cmd im gleichen Ordner befinden.

    Wenn Sie die tempAgent-Anbietereinstellung verwenden, kann sich dieser Ordner auf einem Remotecomputer befinden. Andernfalls muss er sich auf dem Computer befinden, auf dem die Befehlsdatei ausgeführt werden soll.

  2. Wenn Sie die Werte für beliebige in der Datei "SetParameters.xml" enthaltene Parameter anpassen möchten, bearbeiten Sie diese Datei, um die Werte zu ändern.

    Sie könnten z. B. das gleiche Paket zuerst für die Installation auf einem Stagingserver und später für die Installation auf einem Produktionsserver verwenden. In diesem Fall kann der Datenbankverbindungszeichenfolgen-Wert für jede dieser Installationen anders lauten.

  3. Führen Sie die Befehlsdatei aus, und geben Sie das t-Kennzeichen (Testmodus) und optionale Kennzeichen an, die für das Szenario geeignet sind.

    Im Folgenden werden einige typische Szenarien und die hierfür geeigneten optionalen Kennzeichen aufgeführt.

    Hinweis

    Zum Anzeigen einer Liste der unterstützten optionalen Kennzeichen geben Sie an einer Eingabeaufforderung den CMD-Datei-Namen ohne nachfolgende Kennzeichen ein.Wenn Sie die CMD-Datei öffnen, werden ggf. zusätzliche Kennzeichen angezeigt.Kennzeichen, die nicht im Hilfetext angezeigt und nicht in diesem Thema beschrieben werden, werden nicht unterstützt und sollten nicht verwendet werden.

    Hinweis

    Werden für den Zielservernamen, Benutzernamen oder das Kennwort Zeichen verwendet, die nicht in der aktiven Codepage vorhanden sind, könnte bei der Ausführung der CMD-Datei ein Fehler auftreten.

    • Schließen Sie für den Webverwaltungsdienst (WMSvc) das m-Kennzeichen ein, und geben Sie die Dienst-URL als "MSDeploy.axd" an. Verwenden Sie hierzu folgende Syntax:

      ProjectName.deploy.cmd /t /m:https://DestinationServerName:8172/MSDeploy.axd

      Schließen Sie zum Angeben eines Benutzernamens und eines Kennworts das u-Kennzeichen und das p-Kennzeichen ein. Fügen Sie das a-Kennzeichen hinzu, um die Standardauthentifizierung anzugeben. Im folgenden Beispiel wird die Verwendung dieser Kennzeichen dargestellt.

      ProjectName.deploy.cmd /t /m:DestinationServerName /u:User /p:Password /a:basic

      Fügen Sie -AllowUntrusted=True hinzu, wie im folgenden Beispiel gezeigt, um nicht vertrauenswürdige Zertifikate zuzulassen:

      ProjectName.deploy.cmd /t /m:DestinationServerName /u:User /p:Password /a:basic -AllowUntrusted=True

    • Schließen Sie für den Webbereitstellungs-Agent-Dienst (MSDepSvc) das m-Kennzeichen ein, und geben Sie den Zielservernamen oder eine Dienst-URL als "MSDeployAgentService" an. Verwenden Sie hierzu die folgende Syntax:

      ProjectName.deploy.cmd /t /m:DestinationServerName

      ProjectName.deploy.cmd /t /m:http://DestinationServerName/MSDeployAgentService

      Schließen Sie zum Angeben eines Benutzernamens und eines Kennworts das u-Kennzeichen und das p-Kennzeichen ein. (Fügen Sie im Gegensatz zu WMSvc nicht das a-Kennzeichen hinzu.)

    • Schließen Sie für die tempAgent-Anbietereinstellung das g-Kennzeichen und ein m-Kennzeichen ein, um einen Computernamen anzugeben. Verwenden Sie hierzu die folgende Syntax:

      ProjectName.deploy.cmd /t /m:DestinationServerName /g:true

      Schließen Sie zum Angeben eines Benutzernamens und eines Kennworts das u-Kennzeichen und das p-Kennzeichen ein. (Fügen Sie im Gegensatz zu WMSvc nicht das a-Kennzeichen hinzu.)

    • Schließen Sie zum Überspringen des Datenbankanbieters einen Web Deploy skip-Befehl für den SQL Server-Anbieter ein. Verwenden Sie hierzu die folgende Syntax:

      ProjectName.deploy.cmd /t "-skip:objectName=dbFullSql"

      Dies ist möglicherweise notwendig, wenn Sie die Datenbank in einer Webfarm bereitstellen oder die Datenbank nur einmalig bereitstellen.

    • Schließen Sie zum Überspringen des Aktualisierens der Web.config-Datei den Web Deploy skip-Befehl für eine Datei ein. Dies ist ggf. notwendig, wenn Sie verhindern möchten, dass die manuell auf dem Zielserver konfigurierten Web.config-Dateieinstellungen überschrieben werden.

      Im folgenden Beispiel wird gezeigt, wie alle Web.config-Dateien in der Anwendung übersprungen werden.

      ProjectName.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\[\w\s]+web\.config$"

      Im folgenden Beispiel wird gezeigt, wie nur die Web.config-Datei der Anwendung übersprungen wird.

      ProjectName.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\web\.config$"

  4. Überprüfen Sie das Protokoll, das von der Testmodusbereitstellung erzeugt wird, nehmen Sie alle erforderlichen Änderungen vor, und führen Sie die Befehlsdatei erneut mithilfe des t-Kennzeichens aus.

  5. Wiederholen Sie den vorherigen Schritt, bis das Protokoll die gewünschten Bereitstellungsänderungen genau widerspiegelt.

  6. Führen Sie die Befehlsdatei aus, und verwenden Sie die optionalen Kennzeichen, die Sie ausgewählt haben, und das y-Kennzeichen ("ja" oder Updatemodus) anstelle des t-Kennzeichens.

    Web Deploy führt die Bereitstellung aus und zeigt ein Protokoll der ausgeführten Schritte an.

Die vorherige Prozedur stellt Syntaxbeispiele für typische Szenarien bereit und zeigt, wie die in der CMD-Datei definierten Kennzeichen verwendet werden. Für andere Szenarien können Sie einen beliebigen Web Deploy-Befehl an Web Deploy übergeben. Sie sind nicht auf die Kennzeichen beschränkt, die in der CMD-Datei definiert sind. Wenn Sie einen Befehl angeben, der ein Gleichheitszeichen (=) umfasst, muss das Kennzeichen in Anführungszeichen eingeschlossen werden, wie in den vorherigen Beispielen gezeigt.

Sie können auch Web Deploy-Befehle angeben, indem Sie die __MsDeployAdditionalFlags-Umgebungsvariable festlegen.

Weitere Informationen zu anderen Web Deploy-Befehlen, die Sie verwenden können, finden Sie in der Web Deploy-Befehlszeilenreferenz.

Siehe auch

Konzepte

Einstieg in die Webbereitstellung für Visual Studio und ASP.NET