Konfigurieren eines Webservers für die Web Deploy-Veröffentlichung (Remote-Agent)

von Jason Lee

In diesem Thema wird beschrieben, wie Sie einen IIS-Webserver (Internet Information Services) konfigurieren, um Webveröffentlichung und -bereitstellung mithilfe des IIS-Webbereitstellungstools (Web Deploy) Remote-Agent-Diensts zu unterstützen.

Wenn Sie mit Web Deploy 2.0 oder höher arbeiten, gibt es drei Standard Ansätze, die Sie verwenden können, um Ihre Anwendungen oder Websites auf einen Webserver zu übertragen. Ihre Möglichkeiten:

  • Verwenden Sie den Web Deploy Remote Agent Service. Dieser Ansatz erfordert weniger Konfiguration des Webservers, aber Sie müssen die Anmeldeinformationen eines lokalen Serveradministrators angeben, um etwas auf dem Server bereitzustellen.
  • Verwenden Sie den Webbereitstellungshandler. Dieser Ansatz ist viel komplexer und erfordert mehr Anfangsaufwand, um den Webserver einzurichten. Wenn Sie diesen Ansatz verwenden, können Sie IIS jedoch so konfigurieren, dass Benutzer, die keine Administrator sind, die Bereitstellung ausführen können. Der Webbereitstellungshandler ist nur in IIS Version 7 oder höher verfügbar.
  • Verwenden Sie die Offlinebereitstellung. Dieser Ansatz erfordert die geringste Konfiguration des Webservers, aber ein Serveradministrator muss das Webpaket manuell auf den Server kopieren und über den IIS-Manager importieren.

Weitere Informationen zu den wichtigsten Features, Vor- und Nachteilen dieser Ansätze finden Sie unter Auswählen des richtigen Ansatzes für die Webbereitstellung.

Ist der WebBereitstellungs-Remote-Agent der richtige Ansatz für Sie?

Ja, wenn der Benutzer, der den Inhalt bereitstellt, die Anmeldeinformationen eines Administrators auf dem Zielserver angeben kann. Dieser Ansatz ist in diesen Szenarien häufig wünschenswert:

  • Entwicklungs- oder Testumgebungen, in denen der Entwickler die volle Kontrolle über den Zielwebserver und den Datenbankserver hat.
  • Kleinere Organisationen, in denen ein einzelner Benutzer oder eine kleine Gruppe von Benutzern die Kontrolle über den gesamten Anwendungslebenszyklus hat.

In vielen größeren Organisationen, insbesondere in Staging- oder Produktionsumgebungen, ist es oft nicht realistisch, Benutzern Administratorrechte auf Webservern zu gewähren. Bei gehosteten Webservern ist dies besonders unwahrscheinlich. Wenn Sie außerdem planen, die Bereitstellung über einen Buildserver zu automatisieren, sollten Sie möglicherweise keine Administratoranmeldeinformationen für den Bereitstellungsprozess verwenden. In diesen Szenarien kann das Konfigurieren Ihrer Webserver für die Unterstützung der Bereitstellung mithilfe des Webbereitstellungshandlers eine zufriedenstellendere Wahl bieten.

Aufgabenübersicht

In diesem Thema wird beschrieben, wie Sie einen IIS 7.5-Webserver (Internet Information Services) konfigurieren, um Webpakete von einem Remotecomputer mithilfe des Web Deploy Remote Agent-Ansatzes zu akzeptieren und bereitzustellen. Folgendes ist erforderlich:

  • Installieren Sie IIS 7.5 und die empfohlene IIS 7-Konfiguration.
  • Installieren Sie Web Deploy 2.1 oder höher.
  • Erstellen Sie eine IIS-Website zum Hosten der bereitgestellten Inhalte.
  • Stellen Sie sicher, dass der Web Deployment Agent-Dienst ausgeführt wird.

Um die Beispiellösung speziell zu hosten, müssen Sie außerdem Folgendes ausführen:

  • Installieren Sie die .NET Framework 4.0.
  • Installieren Sie ASP.NET MVC 3.

In diesem Thema erfahren Sie, wie Sie die einzelnen Prozeduren ausführen. Bei den Aufgaben und exemplarischen Vorgehensweisen in diesem Thema wird davon ausgegangen, dass Sie mit einem sauber Serverbuild beginnen, auf dem Windows Server 2008 R2 ausgeführt wird. Bevor Sie fortfahren, stellen Sie Folgendes sicher:

  • Windows Server 2008 R2 Service Pack 1 und alle verfügbaren Updates werden installiert.
  • Der Server ist in die Domäne eingebunden.
  • Der Server verfügt über eine statische IP-Adresse.

Hinweis

Weitere Informationen zum Hinzufügen von Computern zu einer Domäne finden Sie unter Hinzufügen von Computern zur Domäne und Anmelden. Weitere Informationen zum Konfigurieren statischer IP-Adressen finden Sie unter Konfigurieren einer statischen IP-Adresse. Der Remote-Agent-Dienst wird von IIS 6 weiter unterstützt und erfordert nicht, dass Sie einer Domäne beitreten müssen. Die Schritte in diesem Tutorial wurden jedoch in IIS 7.5 entwickelt und getestet, und die Verfahren für andere Versionen können variieren.

Installieren von Produkten und Komponenten

In diesem Abschnitt erfahren Sie mehr über die Installation der erforderlichen Produkte und Komponenten auf dem Webserver. Bevor Sie beginnen, empfiehlt es sich, Windows Update auszuführen, um sicherzustellen, dass Ihr Server vollständig auf dem neuesten Stand ist.

In diesem Fall müssen Sie folgendes installieren:

  • IIS 7 Empfohlene Konfiguration. Dadurch wird die Webserverrolle (IIS) auf Ihrem Webserver aktiviert und der Satz von IIS-Modulen und -Komponenten installiert, die Sie zum Hosten einer ASP.NET-Anwendung benötigen.
  • .NET Framework 4.0. Dies ist erforderlich, um Anwendungen auszuführen, die auf dieser Version der .NET Framework erstellt wurden.
  • Webbereitstellungstool 2.1 oder höher. Dadurch wird Web Deploy (und die zugrunde liegende ausführbare Datei MSDeploy.exe) auf Ihrem Server installiert. Im Rahmen dieses Prozesses wird der Web-Deployment Agent-Dienst installiert und gestartet. Mit diesem Dienst können Sie Webpakete von einem Remotecomputer bereitstellen.
  • ASP.NET MVC 3. Dadurch werden die Assemblys installiert, die Sie zum Ausführen von MVC 3-Anwendungen benötigen.

Hinweis

In dieser exemplarischen Vorgehensweise wird die Verwendung des Webplattform-Installers zum Installieren und Konfigurieren der erforderlichen Komponenten beschrieben. Obwohl Sie den Webplattform-Installer nicht verwenden müssen, vereinfacht er den Installationsprozess, indem Abhängigkeiten automatisch erkannt und sichergestellt wird, dass Sie immer die neuesten Produktversionen erhalten. Weitere Informationen finden Sie unter Microsoft-Webplattform-Installer 3.0.

So installieren Sie die erforderlichen Produkte und Komponenten

  1. Laden Sie den Webplattform-Installer herunter, und installieren Sie ihn.

  2. Nach Abschluss der Installation wird der Webplattform-Installer automatisch gestartet.

    Hinweis

    Sie können den Webplattform-Installer jetzt jederzeit über das Startmenü starten. Klicken Sie hierzu im Startmenü auf Alle Programme und dann auf Microsoft-Webplattform-Installer.

  3. Klicken Sie oben im Fenster Web platform Installer 3.0 auf Produkte.

  4. Klicken Sie links im Fenster im Navigationsbereich auf Frameworks.

  5. Klicken Sie in der Zeile Microsoft .NET Framework 4 auf Hinzufügen, wenn die .NET Framework noch nicht installiert ist.

    Hinweis

    Möglicherweise haben Sie die .NET Framework 4.0 bis Windows Update bereits installiert. Wenn ein Produkt oder eine Komponente bereits installiert ist, gibt der Webplattform-Installer dies an, indem die Schaltfläche Hinzufügen durch den Text Installiert ersetzt wird.

    Wenn ein Produkt oder eine Komponente bereits installiert ist, gibt der Webplattform-Installer dies an, indem die Schaltfläche Hinzufügen durch den Text Installiert ersetzt wird.

  6. Klicken Sie in der Zeile ASP.NET MVC 3 (Visual Studio 2010) auf Hinzufügen.

  7. Klicken Sie im Navigationsbereich auf Server.

  8. Klicken Sie in der Zeile IIS 7 Empfohlene Konfiguration auf Hinzufügen.

  9. Klicken Sie in der Zeile Webbereitstellungstool 2.1 auf Hinzufügen.

  10. Klicke auf Installieren. Das Webplattform-Installationsprogramm zeigt Ihnen eine Liste der zu installierenden Produkte zusammen mit den zugehörigen Abhängigkeiten an und fordert Sie auf, die Lizenzbedingungen zu akzeptieren.

    Klicken Sie auf Installieren. Der Webplattform-Installer zeigt Ihnen eine Liste der Produkte zusammen mit allen zugehörigen Abhängigkeiten an, die installiert werden sollen, und fordert Sie auf, die Lizenzbedingungen zu akzeptieren.

  11. Überprüfen Sie die Lizenzbedingungen, und wenn Sie den Bedingungen zustimmen, klicken Sie auf Ich stimme zu.

  12. Wenn die Installation abgeschlossen ist, klicken Sie auf Fertig stellen, und schließen Sie dann das Fenster Web platform Installer 3.0 .

Wenn Sie die .NET Framework 4.0 vor der Installation von IIS installiert haben, müssen Sie das ASP.NET IIS-Registrierungstool (aspnet_regiis.exe) ausführen, um die neueste Version von ASP.NET bei IIS zu registrieren. Wenn Sie dies nicht tun, werden Sie feststellen, dass IIS statische Inhalte (z. B. HTML-Dateien) ohne Probleme bereitstellt, aber beim Versuch, nach ASP.NET Inhalt zu navigieren, der HTTP-Fehler 404.0 – Nicht gefunden zurückgegeben wird. Mit diesem Verfahren können Sie sicherstellen, dass ASP.NET 4.0 registriert ist.

So registrieren Sie ASP.NET 4.0 bei IIS

  1. Klicken Sie auf Start, und geben Sie Eingabeaufforderung ein.

  2. Klicken Sie in den Suchergebnissen mit der rechten Maustaste auf Eingabeaufforderung, und klicken Sie dann auf Als Administrator ausführen.

  3. Navigieren Sie im Eingabeaufforderungsfenster zum Verzeichnis %WINDIR%\Microsoft.NET\Framework\v4.0.30319 .

  4. Geben Sie diesen Befehl ein, und drücken Sie dann die EINGABETASTE:

    aspnet_regiis -iru
    
  5. Wenn Sie planen, zu einem beliebigen Zeitpunkt 64-Bit-Webanwendungen zu hosten, sollten Sie auch die 64-Bit-Version von ASP.NET bei IIS registrieren. Navigieren Sie hierzu im Eingabeaufforderungsfenster zum Verzeichnis %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 .

  6. Geben Sie diesen Befehl ein, und drücken Sie dann die EINGABETASTE:

    aspnet_regiis -iru
    

Als bewährte Methode sollten Sie an diesem Punkt erneut Windows Update verwenden, um alle verfügbaren Updates für die neuen Produkte und Komponenten herunterzuladen und zu installieren, die Sie installiert haben.

Konfigurieren der IIS-Website

Bevor Sie Webinhalte auf Ihrem Server bereitstellen können, müssen Sie eine IIS-Website zum Hosten des Inhalts erstellen und konfigurieren. Web Deploy kann nur Webpakete auf einer vorhandenen IIS-Website bereitstellen. Die Website kann nicht für Sie erstellt werden. Auf hoher Ebene müssen Sie die folgenden Aufgaben ausführen:

  • Erstellen Sie einen Ordner im Dateisystem, um Ihre Inhalte zu hosten.
  • Erstellen Sie eine IIS-Website, um den Inhalt zu bedienen, und ordnen Sie sie dem lokalen Ordner zu.
  • Erteilen Sie leseberechtigungen für die Anwendungspoolidentität für den lokalen Ordner.

Obwohl Sie nichts daran hindern, Inhalte auf der Standardwebsite in IIS bereitzustellen, wird dieser Ansatz nicht für Andere als Test- oder Demonstrationsszenarien empfohlen. Um eine Produktionsumgebung zu simulieren, sollten Sie eine neue IIS-Website mit Einstellungen erstellen, die für die Anforderungen Ihrer Anwendung spezifisch sind.

So erstellen und konfigurieren Sie eine IIS-Website

  1. Erstellen Sie im lokalen Dateisystem einen Ordner zum Speichern Ihrer Inhalte (z. B. C:\DemoSite).

  2. Zeigen Sie im Menü Start auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).

  3. Erweitern Sie im IIS-Manager im Bereich Verbindungen den Serverknoten (z. B. TESTWEB1).

    Erweitern Sie im IIS-Manager im Bereich Verbindungen den Serverknoten (z. B. TESTWEB1).

  4. Klicken Sie mit der rechten Maustaste auf den Knoten Websites , und klicken Sie dann auf Website hinzufügen.

  5. Geben Sie im Feld Websitename einen Namen für die IIS-Website ein (z. B. DemoSite).

  6. Geben Sie im Feld Physischer Pfad den Pfad zu Ihrem lokalen Ordner ein (oder navigieren Sie zu) (z. B. C:\DemoSite).

  7. Geben Sie im Feld Port die Portnummer ein, unter der Sie die Website hosten möchten (z. B. 85).

    Hinweis

    Die Standardportnummern sind 80 für HTTP und 443 für HTTPS. Wenn Sie diese Website jedoch an Port 80 hosten, müssen Sie die Standardwebsite beenden, bevor Sie auf Ihre Website zugreifen können.

  8. Lassen Sie das Feld Hostname leer, es sei denn, Sie möchten einen DNS-Eintrag (Domain Name System) für die Website konfigurieren, und klicken Sie dann auf OK.

    Lassen Sie das Feld Hostname leer, es sei denn, Sie möchten einen DNS-Eintrag (Domain Name System) für die Website konfigurieren, und klicken Sie dann auf OK.

    Hinweis

    In einer Produktionsumgebung sollten Sie Ihre Website wahrscheinlich an Port 80 hosten und einen Hostheader zusammen mit übereinstimmenden DNS-Einträgen konfigurieren. Weitere Informationen zum Konfigurieren von Hostheadern in IIS 7 finden Sie unter Konfigurieren eines Hostheaders für eine Website (IIS 7). Weitere Informationen zur DNS-Serverrolle in Windows Server 2008 R2 finden Sie unter DNS-Serverübersicht.

  9. Klicken Sie im Bereich Aktionen unter Site bearbeitenauf Bindungen.

  10. Klicken Sie im Dialogfeld Sitebindungen auf Hinzufügen.

    Klicken Sie im Dialogfeld Websitebindungen auf Hinzufügen.

  11. Legen Sie im Dialogfeld Websitebindung hinzufügen die IP-Adresse und den Port so fest, dass sie Ihrer vorhandenen Standortkonfiguration entsprechen.

  12. Geben Sie im Feld Hostname den Namen Ihres Webservers ein (z. B. TESTWEB1), und klicken Sie dann auf OK.

    Geben Sie im Feld Hostname den Namen Ihres Webservers ein (z. B. TESTWEB1), und klicken Sie dann auf OK.

    Hinweis

    Mit der ersten Standortbindung können Sie lokal auf den Standort zugreifen, indem Sie die IP-Adresse und den Port oder verwenden http://localhost:85. Mit der zweiten Standortbindung können Sie von anderen Computern in der Domäne über den Computernamen auf den Standort zugreifen (z. B. http://testweb1:85).

  13. Klicken Sie im Dialogfeld Sitebindungen auf Schließen.

  14. Klicken Sie im Bereich Verbindungen auf Anwendungspools.

  15. Klicken Sie im Bereich Anwendungspools mit der rechten Maustaste auf den Namen Ihres Anwendungspools, und klicken Sie dann auf Grundeinstellungen. Standardmäßig entspricht der Name Ihres Anwendungspools dem Namen Ihrer Website (z. B. DemoSite).

  16. Wählen Sie in der Liste .NET Framework Version.NET Framework v4.0.30319 aus, und klicken Sie dann auf OK.

    Wählen Sie in der Liste .NET Framework Version .NET Framework v4.0.30319 aus, und klicken Sie dann auf OK.

    Hinweis

    Die Beispiellösung erfordert .NET Framework 4.0. Dies ist für Web Deploy im Allgemeinen keine Voraussetzung.

Damit Ihre Website Inhalte bereitstellen kann, muss die Anwendungspoolidentität über Leseberechtigungen für den lokalen Ordner verfügen, in dem die Inhalte gespeichert werden. In IIS 7.5 werden Anwendungspools standardmäßig mit einer eindeutigen Anwendungspoolidentität ausgeführt (im Gegensatz zu früheren Versionen von IIS, bei denen Anwendungspools normalerweise mit dem Netzwerkdienstkonto ausgeführt werden). Die Anwendungspoolidentität ist kein echtes Benutzerkonto und wird in keiner Liste von Benutzern oder Gruppen angezeigt. Stattdessen wird sie dynamisch erstellt, wenn der Anwendungspool gestartet wird. Jede Anwendungspoolidentität wird der lokalen IIS_IUSRS Sicherheitsgruppe als ausgeblendetes Element hinzugefügt.

Zum Erteilen von Berechtigungen für eine Anwendungspoolidentität für eine Datei oder einen Ordner haben Sie zwei Möglichkeiten:

  • Weisen Sie der Anwendungspoolidentität Direkt Berechtigungen zu, indem Sie das Format IIS AppPool[Anwendungspoolname] verwenden (z. B. IIS AppPool\DemoSite).
  • Weisen Sie der gruppe IIS_IUSRS Berechtigungen zu.

Der häufigste Ansatz besteht darin, der lokalen IIS_IUSRS Gruppe Berechtigungen zuzuweisen, da Sie mit diesem Ansatz Anwendungspools ändern können, ohne Dateisystemberechtigungen neu konfigurieren zu müssen. Im nächsten Verfahren wird dieser gruppenbasierte Ansatz verwendet.

Hinweis

Weitere Informationen zu Anwendungspoolidentitäten in IIS 7.5 finden Sie unter Anwendungspoolidentitäten.

So konfigurieren Sie Ordnerberechtigungen für eine IIS-Website

  1. Navigieren Sie in Windows Explorer zum Speicherort Ihres lokalen Ordners.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner, und klicken Sie anschließend auf Eigenschaften.

  3. Klicken Sie auf der Registerkarte Security auf Edit und dann auf Add.

  4. Klicken Sie auf Standorte. Wählen Sie im Dialogfeld Speicherorte den lokalen Server aus, und klicken Sie dann auf OK.

    Klicken Sie auf Speicherorte. Wählen Sie im Dialogfeld Speicherorte den lokalen Server aus, und klicken Sie dann auf OK.

  5. Geben Sie im Dialogfeld Benutzer oder Gruppen auswählenIIS_IUSRS ein, klicken Sie auf Namen überprüfen, und klicken Sie dann auf OK.

  6. Beachten Sie im Dialogfeld Berechtigungen für (Ordnername), dass der neuen Gruppe standardmäßig die Berechtigungen Lesen & ausführen, Ordnerinhalt auflisten und Lesen zugewiesen wurden. Lassen Sie dies unverändert, und klicken Sie auf OK.

  7. Klicken Sie auf OK , um das Dialogfeld Eigenschaften (Ordnername) zu schließen.

Als letzte Aufgabe, bevor Sie versuchen, Webpakete auf Ihrem Server bereitzustellen, sollten Sie sicherstellen, dass der Web-Deployment Agent-Dienst ausgeführt wird. Wenn Sie ein Paket von einem Remotecomputer bereitstellen, ist der Web-Deployment Agent-Dienst für das Extrahieren und Installieren des Paketinhalts verantwortlich. Der Dienst wird standardmäßig gestartet, wenn Sie das Webbereitstellungstool installieren und unter der Netzwerkdienstidentität ausgeführt werden.

Sie können überprüfen, ob ein Dienst auf verschiedene Arten ausgeführt wird, indem Sie verschiedene Befehlszeilenprogramme oder Windows PowerShell Cmdlets verwenden. Dieses Verfahren beschreibt einen einfachen benutzeroberflächenbasierten Ansatz.

So überprüfen Sie, ob der Web-Deployment Agent-Dienst ausgeführt wird

  1. Zeigen Sie im Menü Start auf Verwaltung, und klicken Sie dann auf Dienste.

  2. Suchen Sie die Zeile Web Deployment Agent Dienst, und überprüfen Sie, ob der Status auf Gestartet festgelegt ist.

    Suchen Sie die Web Deployment Agent Dienstzeile, und überprüfen Sie, ob der Status auf Gestartet festgelegt ist.

  3. Wenn der Dienst noch nicht gestartet wurde, klicken Sie auf Start.

Konfigurieren von Firewallausnahmen

Standardmäßig lauscht der Remote-Agent-Dienst an TCP-Port 80 unter der folgenden URL:

http://servername.com/MSDEPLOYAGENTSERVICE

In den meisten Fällen müssen Sie keine zusätzlichen Firewallregeln für den Remote-Agent-Dienst konfigurieren, da Webserver in der Regel auf HTTP-Anforderungen an Port 80 lauschen. Wenn Sie Ihre Installation so angepasst haben, dass sie an einem nicht standardmäßigen Port lauscht, müssen Sie Firewallausnahmen nach Bedarf konfigurieren.

Zusammenfassung

An diesem Punkt ist Ihr Webserver bereit, Webpakete von einem Remotecomputer zu akzeptieren und zu installieren. Bevor Sie versuchen, eine Webanwendung auf dem Server bereitzustellen, sollten Sie die folgenden wichtigen Punkte überprüfen:

  • Haben Sie ASP.NET 4.0 bei IIS registriert?
  • Verfügt die Identität des Anwendungspools über Lesezugriff auf den Quellordner für Ihre Website?
  • Wird der Web Deployment Agent-Dienst ausgeführt?

Weitere Informationen

Eine Anleitung zum Konfigurieren benutzerdefinierter Microsoft-Build-Engine-Projektdateien (MSBuild) zum Bereitstellen von Webpaketen im Remote-Agent-Dienst finden Sie unter Konfigurieren von Bereitstellungseigenschaften für eine Zielumgebung.