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:
- Erstellen einer Registrierungsstruktur für den ASP.NET Core-Datenschutz
- Konfiguration der Zugriffssteuerungsliste (Access Control List, ACL) des App-Pools
- Um sich auf IIS-Bereitstellungskonzepte zu konzentrieren, stellt dieses Tutorial eine Anwendung ohne in IIS konfigurierte HTTPS-Sicherheit bereit. Weitere Informationen zum Hosting einer App, die für das HTTPS-Protokoll aktiviert ist, finden Sie in den Sicherheitsthemen im Abschnitt Weitere Ressourcen in diesem Artikel. Weitere Anleitungen zum Hosten von ASP.NET Core-Apps finden Sie im Artikel Hosten von ASP.NET Core unter Windows mit IIS.
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)
Führen Sie das Installationsprogramm auf dem IIS-Server aus.
Starten Sie den Server neu, oder führen Sie
net stop was /y
, gefolgt vonnet start w3svc
in einer Befehlsshell aus.
Erstellen der IIS-Website
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.
Ö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.
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/
undhttp://+: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).Vergewissern Sie sich, dass die Prozessmodellidentität über die richtigen Berechtigungen verfügt.
Wenn die Standardidentität des App-Pools (Prozessmodell>Identity ) von
ApplicationPoolIdentity
in eine andere Identität geändert wird, sollten Sie sicherstellen, dass die neue Identität über die erforderlichen Berechtigungen zum Zugriff auf den Ordner, die Datenbank und andere erforderliche Ressourcen der App verfügt. 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).
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Veröffentlichen aus.
- Wählen Sie im Dialogfeld Veröffentlichungsziel auswählen die Veröffentlichungsoptionen Ordner aus.
- 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.
- 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
- ASP.NET Core-Modul (ANCM) für IIS
- Verzeichnisstruktur für ASP.NET Core
- Problembehandlung bei ASP.NET Core in Azure App Service und IIS
- Erzwingen von HTTPS in ASP.NET Core
- WebSockets in IIS
Artikel zur Bereitstellung von ASP.NET Core-Apps
- Veröffentlichen einer ASP.NET Core-App in Azure mit Visual Studio
- Veröffentlichen einer ASP.NET Core-App in Azure mit Visual Studio Code
- Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps
Artikel zur IIS-HTTPS-Konfiguration
Artikel zu IIS und Windows Server
Bereitstellungsressourcen für IIS-Administratoren
- IIS-Dokumentation
- Erste Schritte mit IIS-Manager in IIS
- .NET Core-Anwendungsbereitstellung
- ASP.NET Core-Modul (ANCM) für IIS
- Verzeichnisstruktur für ASP.NET Core
- IIS-Module mit ASP.NET Core
- Problembehandlung bei ASP.NET Core in Azure App Service und IIS
- Persistente Sitzungen mit Routing von Anwendungsanforderungen