Veröffentlichen einer ASP.NET Core-App in IIS

In diesem Tutorial wird gezeigt, wie eine ASP.NET Core-App auf einem IIS-Server gehostet wird.

Dieses Tutorial behandelt die folgenden Themen:

  • Installieren des Pakets „.NET Core Hosting“ unter Windows Server.
  • Erstellen Sie einer IIS-Website in IIS-Manager.
  • Bereitstellen einer ASP.NET Core-App.

Voraussetzungen

  • .Net Core SDK auf dem Entwicklungs Computer.
  • Windows Server, konfiguriert mit der Serverrolle Webserver (IIS) . Wenn Ihr Server nicht zum Hosten von Websites mit IIS konfiguriert ist, befolgen Sie die Anleitungen im Abschnitt IIS-Konfiguration des Artikels Hosten von ASP.NET Core unter Windows mit IIS, und kehren Sie dann zu diesem Tutorial zurück.

Warnung

Die IIS-Konfiguration und Websitesicherheit beinhalten Konzepte, die in diesem Tutorial nicht behandelt werden. Lesen Sie den Leitfaden für IIS in der Microsoft IIS-Dokumentation und den ASP.NET Core-Artikel zum Hosting mit IIS, bevor Sie Produktions-Apps unter IIS hosten.

Wichtige Szenarien für das IIS-Hosting, die in diesem Tutorial nicht behandelt werden, sind:

Installieren des .NET Core Hosting-Pakets

Installieren Sie das Paket „.NET Core Hosting“ auf dem IIS-Server. Das Paket installiert die .NET Core-Runtime, die .NET Core-Bibliothek und das ASP.NET Core-Modul. Mit dem Modul können ASP.NET Core-Apps hinter IIS ausgeführt werden.

Laden Sie den Installer über folgenden Link herunter:

Aktueller Installer für das .NET Core Hosting-Paket (direkter Download)

  1. Führen Sie das Installationsprogramm auf dem IIS-Server aus.

  2. Starten Sie den Server neu, oder führen Sie net stop was /y, gefolgt von net start w3svc in einer Befehlsshell aus.

Erstellen der IIS-Website

  1. Erstellen Sie auf dem IIS-Server einen Ordner zum Speichern der veröffentlichten Ordner und Dateien der App. In einem späteren Schritt wird der Ordnerpfad als physischer App-Pfad in IIS angegeben. Weitere Informationen zum Bereitstellungsordner und zum Dateilayout einer App finden Sie unter ASP.NET Core-Verzeichnisstruktur.

  2. Öffnen Sie in IIS-Manager den Serverknoten im Bereich Verbindungen. Klicken Sie mit der rechten Maustaste auf den Ordner Websites. Klicken Sie im Kontextmenü auf Website hinzufügen.

  3. Geben Sie einen Websitenamen an, und legen Sie den physischen Pfad auf den erstellten Bereitstellungsordner der App fest. Geben Sie die Konfiguration unter Bindung an, und erstellen Sie die Website, indem Sie auf OK klicken.

    Warnung

    Allgemeine Platzhalterbindungen (http://*:80/ und http://+:80) dürfen nicht verwendet werden. Platzhalterbindungen auf oberster Ebene gefährden die Sicherheit Ihrer App. Dies gilt für starke und schwache Platzhalter. Verwenden Sie statt Platzhaltern explizite Hostnamen. Platzhalterbindungen in untergeordneten Domänen (z.B. *.mysub.com) verursachen kein Sicherheitsrisiko, wenn Sie die gesamte übergeordnete Domäne steuern (im Gegensatz zu *.com, das angreifbar ist). Weitere Informationen finden Sie unter RFC 9110: HTTP-Semantik (Abschnitt 7.2. Host und :authority).

  4. Vergewissern Sie sich, dass die Prozessmodellidentität über die richtigen Berechtigungen verfügt.

    Wenn die Standardidentität des Anwendungspools (Prozessmodell>Identity) von ApplicationPoolIdentity zu einer anderen Identität geändert wird, überprüfen Sie, ob die neue Identität die erforderlichen Berechtigungen für den Zugriff auf den Ordner der App, die Datenbank und andere erforderliche Ressourcen hat. Der App-Pool benötigt beispielsweise Lese- und Schreibzugriff für Ordner, in denen die App Lese- und Schreibvorgänge für Dateien ausführt.

Erstellen einer ASP.NET Core Razor Pages-App

Folgen Sie dem Tutorial Erste Schritte mit ASP.NET Core, um eine Razor Pages-App zu erstellen.

Veröffentlichen und Bereitstellen der App

Veröffentlichen einer App bedeutet, dass eine kompilierte App erstellt wird, die von einem Server gehostet werden kann. Bereitstellen einer App bedeutet, dass die veröffentlichte App auf ein Hostingsystem verschoben wird. Der Veröffentlichungsschritt wird vom .NET Core SDK ausgeführt, während der Bereitstellungsschritt mit einer Vielzahl von Ansätzen ausgeführt werden kann. In diesem Tutorial wird der Bereitstellungsansatz über einen Ordner verwendet. Dabei gilt:

  • Die App wird in einem Ordner veröffentlicht.
  • Der Inhalt des Ordners wird in den Ordner der IIS-Website verschoben (der physische Pfad zur Website in IIS-Manager).
  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Veröffentlichen aus.
  2. Wählen Sie im Dialogfeld Veröffentlichungsziel auswählen die Veröffentlichungsoptionen Ordner aus.
  3. Legen Sie den Pfad des Ordners oder der Dateifreigabe fest.
    • Wenn Sie einen Ordner für die IIS-Website erstellt haben, der auf dem Entwicklungscomputer als Netzwerkfreigabe verfügbar ist, geben Sie den Pfad zur Freigabe an. Der aktuelle Benutzer muss über Schreibzugriff verfügen, um auf der Freigabe veröffentlichen zu können.
    • Wenn Sie nicht in der Lage sind, die Bereitstellung direkt im Ordner der IIS-Website auf dem IIS-Server auszuführen, veröffentlichen Sie diese in einem Ordner auf entfernbaren Medien, und verschieben Sie die veröffentlichte App physisch in den Ordner der IIS-Website auf dem Server. Dies ist der physische Pfad der Website in IIS-Manager. Verschieben Sie den Inhalt des Ordners bin/Release/{TARGET FRAMEWORK}/publish in den Ordner der IIS-Website auf dem Server, der der physische Pfad der Website in IIS Manager ist.
  4. Wählen Sie die Schaltfläche Veröffentlichen aus.

Navigieren auf der Website

Auf die App kann in einem Browser zugegriffen werden, nachdem die erste Anforderung empfangen wurde. Nehmen Sie eine Anforderung an die App an der Endpunktbindung vor, die Sie in IIS-Manager für die Website eingerichtet haben.

Nächste Schritte

In diesem Tutorial haben Sie gelernt, wie die folgenden Aufgaben ausgeführt werden:

  • Installieren des Pakets „.NET Core Hosting“ unter Windows Server.
  • Erstellen Sie einer IIS-Website in IIS-Manager.
  • Bereitstellen einer ASP.NET Core-App.

Weitere Informationen zum Hosting von ASP.NET Core-Apps unter IIS finden Sie im IIS-Übersichtsartikel:

Zusätzliche Ressourcen

Artikel in der ASP.NET Core-Dokumentation

Artikel zur Bereitstellung von ASP.NET Core-Apps

Artikel zur IIS-HTTPS-Konfiguration

Artikel zu IIS und Windows Server

Bereitstellungsressourcen für IIS-Administratoren