Hosten und Bereitstellen von ASP.NET CoreHost and deploy ASP.NET Core

Um eine ASP.NET Core-App in einer Hostingumgebung bereitzustellen, müssen Sie allgemein folgende Schritte durchführen:In general, to deploy an ASP.NET Core app to a hosting environment:

  • Stellen Sie die veröffentlichte App in einem Ordner auf dem Hostserver bereit.Deploy the published app to a folder on the hosting server.
  • Richten Sie einen Prozess-Manager ein, der die App startet, wenn Anforderungen eingehen und die App nach einem Absturz oder Serverneustart neu startet.Set up a process manager that starts the app when requests arrive and restarts the app after it crashes or the server reboots.
  • Richten Sie zur Konfiguration eines Reverseproxys einen Reverseproxy ein, der Anforderungen an die App weiterleitet.For configuration of a reverse proxy, set up a reverse proxy to forward requests to the app.

Veröffentlichen in einem OrdnerPublish to a folder

Der Befehl dotnet publish kompiliert App-Code und kopiert die Dateien, die zum Ausführen der App erforderlich sind, in den Ordner publish.The dotnet publish command compiles app code and copies the files required to run the app into a publish folder. Bei der Bereitstellung von Visual Studio erfolgt der dotnet publish-Schritt automatisch, bevor die Dateien in das Bereitstellungsziel kopiert werden.When deploying from Visual Studio, the dotnet publish step occurs automatically before the files are copied to the deployment destination.

OrdnerinhalteFolder contents

Der Ordner publish enthält mindestens eine App-Assemblydatei, Abhängigkeiten und optional die .NET-Runtime.The publish folder contains one or more app assembly files, dependencies, and optionally the .NET runtime.

Eine .NET Core-App kann als eigenständige Bereitstellung oder als Framework-abhängige Bereitstellung veröffentlicht werden.A .NET Core app can be published as self-contained deployment or framework-dependent deployment. Wenn die App eigenständig ist, sind die Assemblydateien, die die .NET-Runtime enthalten, im Ordner publish enthalten.If the app is self-contained, the assembly files that contain the .NET runtime are included in the publish folder. Wenn die App frameworkabhängig ist, sind die Dateien für die .NET-Runtime nicht enthalten, da die App über einen Verweis auf eine auf dem Server installierte .NET-Version verfügt.If the app is framework-dependent, the .NET runtime files aren't included because the app has a reference to a version of .NET that's installed on the server. Das Standardmodell für die Bereitstellung ist Framework-abhängig.The default deployment model is framework-dependent. Weitere Informationen finden Sie unter .NET Core application deployment (.NET Core-Anwendungsbereitstellung).For more information, see .NET Core application deployment.

Zusätzlich zu den EXE- und DLL-Dateien enthält der Ordner publish für eine ASP.NET Core-App üblicherweise noch Konfigurationsdateien, statische Objekte und MVC-Ansichten.In addition to .exe and .dll files, the publish folder for an ASP.NET Core app typically contains configuration files, static assets, and MVC views. Weitere Informationen finden Sie unter Verzeichnisstruktur für ASP.NET Core.For more information, see Verzeichnisstruktur für ASP.NET Core.

Einrichten eines ProzessmanagersSet up a process manager

Bei einer ASP.NET Core-App handelt es sich um eine Konsolen-App, die gestartet werden muss, wenn ein Server startet und nach Abstürzen neu startet.An ASP.NET Core app is a console app that must be started when a server boots and restarted if it crashes. Sie benötigen einen Prozess-Manager, um die Starts und Neustarts zu automatisieren.To automate starts and restarts, a process manager is required. Die gängigsten Prozess-Manager für ASP.NET Core sind Folgende:The most common process managers for ASP.NET Core are:

Einrichten eines ReverseproxysSet up a reverse proxy

Wenn die App den Kestrel Server verwendet, können Nginx, Apache oder IIS als Reverseproxyserver verwendet werden.If the app uses the Kestrel server, Nginx, Apache, or IIS can be used as a reverse proxy server. Ein Reverseproxyserver empfängt HTTP-Anforderungen aus dem Internet und leitet diese an Kestrel weiter.A reverse proxy server receives HTTP requests from the Internet and forwards them to Kestrel.

Jede der beiden Konfigurationen —mit oder ohne einen Reverseproxyserver— ist eine unterstützte Hostingkonfiguration.Either configuration—with or without a reverse proxy server—is a supported hosting configuration. Weitere Informationen finden Sie unter When to use Kestrel with a reverse proxy (Verwenden von Kestrel mit einem Reverseproxy).For more information, see When to use Kestrel with a reverse proxy.

Proxyserver und LastenausgleichsszenarienProxy server and load balancer scenarios

Möglicherweise ist zusätzliche Konfiguration für Apps erforderlich, die hinter Proxyservern und Lastenausgleichsmodulen (Load Balancer) gehostet werden.Additional configuration might be required for apps hosted behind proxy servers and load balancers. Ohne zusätzliche Konfiguration hat eine App möglicherweise keinen Zugriff auf das Schema (HTTP/HTTPS) und die Remote-IP-Adresse, von der eine Anforderung stammte.Without additional configuration, an app might not have access to the scheme (HTTP/HTTPS) and the remote IP address where a request originated. Weitere Informationen hierzu feinden Sie unter Konfigurieren von ASP.NET Core zur Verwendung mit Proxyservern und Lastenausgleich.For more information, see Configure ASP.NET Core to work with proxy servers and load balancers.

Verwenden von Visual Studio und MSBuild zum Automatisieren der BereitstellungenUse Visual Studio and MSBuild to automate deployments

Die Bereitstellung erfordert neben dem Kopieren der Ausgabe von dotnet publish auf einen Server oft zusätzliche Aufgaben.Deployment often requires additional tasks besides copying the output from dotnet publish to a server. Beispielsweise können zusätzliche Dateien aus dem Ordner publish erforderlich oder ausgeschlossen sein.For example, extra files might be required or excluded from the publish folder. Visual Studio verwendet MSBuild für die Webbereitstellung, und MSBuild kann für die Ausführung vieler weiterer Tasks während der Bereitstellung angepasst werden.Visual Studio uses MSBuild for web deployment, and MSBuild can be customized to do many other tasks during deployment. Weitere Informationen finden Sie unter Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps und im Buch Using MSBuild and Team Foundation Build (Verwenden von MSBuild und Team Foundation Build).For more information, see Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps and the Using MSBuild and Team Foundation Build book.

Mithilfe des Features zum Veröffentlichen einer Web-App oder der integrierten Git-Unterstützung können Apps direkt von Visual Studio in Azure App Service bereitgestellt werden.By using the Publish Web feature or built-in Git support, apps can be deployed directly from Visual Studio to the Azure App Service. Azure DevOps Services unterstützt Continuous Deployment in Azure App Service.Azure DevOps Services supports continuous deployment to Azure App Service. Weitere Informationen finden Sie unter DevOps mit ASP.NET Core und Azure.For more information, see DevOps with ASP.NET Core and Azure.

Veröffentlichen in AzurePublish to Azure

Anleitungen zum Veröffentlichen einer App in Azure mithilfe von Visual Studio finden Sie unter Veröffentlichen einer ASP.NET Core-App in Azure mit Visual Studio.See Veröffentlichen einer ASP.NET Core-App in Azure mit Visual Studio for instructions on how to publish an app to Azure using Visual Studio. Ein weiteres Beispiel wird unter Erstellen von ASP.NET Core-Web-Apps in Azure bereitgestellt.An additional example is provided by Create an ASP.NET Core web app in Azure.

Veröffentlichen mit MSDeploy unter WindowsPublish with MSDeploy on Windows

Anleitungen zum Veröffentlichen einer App mit einem Visual Studio-Veröffentlichungsprofil z.B. von einer Windows-Eingabeaufforderung mit dem Befehl dotnet msbuild finden Sie unter Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps.See Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps for instructions on how to publish an app with a Visual Studio publish profile, including from a Windows command prompt using the dotnet msbuild command.

IIS (Internet Information Services)Internet Information Services (IIS)

Informationen zu Bereitstellungen zu Internetinformationsdiensten (IIS) mit von der web.config-Datei bereitgestellter Konfiguration, finden Sie in den Artikeln unter Hosten von ASP.NET Core unter Windows mit IIS.For deployments to Internet Information Services (IIS) with configuration provided by the web.config file, see the articles under Hosten von ASP.NET Core unter Windows mit IIS.

Hosten in einer WebfarmHost in a web farm

Weitere Informationen zur Konfiguration des Hostings von ASP.NET Core-Apps in einer Webfarmumgebung (z.B. Bereitstellen mehrerer App-Instanzen zur besseren Skalierbarkeit) finden Sie unter Hosten von ASP.NET Core in einer Webfarm.For information on configuration for hosting ASP.NET Core apps in a web farm environment (for example, deployment of multiple instances of your app for scalability), see Hosten von ASP.NET Core in einer Webfarm.

Hosten auf DockerHost on Docker

Weitere Informationen finden Sie unter Hosten von ASP.NET Core in Docker-Containern.For more information, see Hosten von ASP.NET Core in Docker-Containern.

Ausführen von IntegritätsprüfungenPerform health checks

Verwenden Sie Middleware für die Integritätsprüfung, um Integritätsprüfungen für eine App und deren Abhängigkeiten auszuführen.Use Health Check Middleware to perform health checks on an app and its dependencies. Weitere Informationen finden Sie unter Integritätsprüfungen in ASP.NET Core.For more information, see Integritätsprüfungen in ASP.NET Core.

Zusätzliche RessourcenAdditional resources

Um eine ASP.NET Core-App in einer Hostingumgebung bereitzustellen, müssen Sie allgemein folgende Schritte durchführen:In general, to deploy an ASP.NET Core app to a hosting environment:

  • Stellen Sie die veröffentlichte App in einem Ordner auf dem Hostserver bereit.Deploy the published app to a folder on the hosting server.
  • Richten Sie einen Prozess-Manager ein, der die App startet, wenn Anforderungen eingehen und die App nach einem Absturz oder Serverneustart neu startet.Set up a process manager that starts the app when requests arrive and restarts the app after it crashes or the server reboots.
  • Richten Sie zur Konfiguration eines Reverseproxys einen Reverseproxy ein, der Anforderungen an die App weiterleitet.For configuration of a reverse proxy, set up a reverse proxy to forward requests to the app.

Veröffentlichen in einem OrdnerPublish to a folder

Der Befehl dotnet publish kompiliert App-Code und kopiert die Dateien, die zum Ausführen der App erforderlich sind, in den Ordner publish.The dotnet publish command compiles app code and copies the files required to run the app into a publish folder. Bei der Bereitstellung von Visual Studio erfolgt der dotnet publish-Schritt automatisch, bevor die Dateien in das Bereitstellungsziel kopiert werden.When deploying from Visual Studio, the dotnet publish step occurs automatically before the files are copied to the deployment destination.

OrdnerinhalteFolder contents

Der Ordner publish enthält mindestens eine App-Assemblydatei, Abhängigkeiten und optional die .NET-Runtime.The publish folder contains one or more app assembly files, dependencies, and optionally the .NET runtime.

Eine .NET Core-App kann als eigenständige Bereitstellung oder als Framework-abhängige Bereitstellung veröffentlicht werden.A .NET Core app can be published as self-contained deployment or framework-dependent deployment. Wenn die App eigenständig ist, sind die Assemblydateien, die die .NET-Runtime enthalten, im Ordner publish enthalten.If the app is self-contained, the assembly files that contain the .NET runtime are included in the publish folder. Wenn die App frameworkabhängig ist, sind die Dateien für die .NET-Runtime nicht enthalten, da die App über einen Verweis auf eine auf dem Server installierte .NET-Version verfügt.If the app is framework-dependent, the .NET runtime files aren't included because the app has a reference to a version of .NET that's installed on the server. Das Standardmodell für die Bereitstellung ist Framework-abhängig.The default deployment model is framework-dependent. Weitere Informationen finden Sie unter .NET Core application deployment (.NET Core-Anwendungsbereitstellung).For more information, see .NET Core application deployment.

Zusätzlich zu den EXE- und DLL-Dateien enthält der Ordner publish für eine ASP.NET Core-App üblicherweise noch Konfigurationsdateien, statische Objekte und MVC-Ansichten.In addition to .exe and .dll files, the publish folder for an ASP.NET Core app typically contains configuration files, static assets, and MVC views. Weitere Informationen finden Sie unter Verzeichnisstruktur für ASP.NET Core.For more information, see Verzeichnisstruktur für ASP.NET Core.

Einrichten eines ProzessmanagersSet up a process manager

Bei einer ASP.NET Core-App handelt es sich um eine Konsolen-App, die gestartet werden muss, wenn ein Server startet und nach Abstürzen neu startet.An ASP.NET Core app is a console app that must be started when a server boots and restarted if it crashes. Sie benötigen einen Prozess-Manager, um die Starts und Neustarts zu automatisieren.To automate starts and restarts, a process manager is required. Die gängigsten Prozess-Manager für ASP.NET Core sind Folgende:The most common process managers for ASP.NET Core are:

Einrichten eines ReverseproxysSet up a reverse proxy

Wenn die App den Kestrel Server verwendet, können Nginx, Apache oder IIS als Reverseproxyserver verwendet werden.If the app uses the Kestrel server, Nginx, Apache, or IIS can be used as a reverse proxy server. Ein Reverseproxyserver empfängt HTTP-Anforderungen aus dem Internet und leitet diese an Kestrel weiter.A reverse proxy server receives HTTP requests from the Internet and forwards them to Kestrel.

Jede der beiden Konfigurationen —mit oder ohne einen Reverseproxyserver— ist eine unterstützte Hostingkonfiguration.Either configuration—with or without a reverse proxy server—is a supported hosting configuration. Weitere Informationen finden Sie unter When to use Kestrel with a reverse proxy (Verwenden von Kestrel mit einem Reverseproxy).For more information, see When to use Kestrel with a reverse proxy.

Proxyserver und LastenausgleichsszenarienProxy server and load balancer scenarios

Möglicherweise ist zusätzliche Konfiguration für Apps erforderlich, die hinter Proxyservern und Lastenausgleichsmodulen (Load Balancer) gehostet werden.Additional configuration might be required for apps hosted behind proxy servers and load balancers. Ohne zusätzliche Konfiguration hat eine App möglicherweise keinen Zugriff auf das Schema (HTTP/HTTPS) und die Remote-IP-Adresse, von der eine Anforderung stammte.Without additional configuration, an app might not have access to the scheme (HTTP/HTTPS) and the remote IP address where a request originated. Weitere Informationen hierzu feinden Sie unter Konfigurieren von ASP.NET Core zur Verwendung mit Proxyservern und Lastenausgleich.For more information, see Configure ASP.NET Core to work with proxy servers and load balancers.

Verwenden von Visual Studio und MSBuild zum Automatisieren der BereitstellungenUse Visual Studio and MSBuild to automate deployments

Die Bereitstellung erfordert neben dem Kopieren der Ausgabe von dotnet publish auf einen Server oft zusätzliche Aufgaben.Deployment often requires additional tasks besides copying the output from dotnet publish to a server. Beispielsweise können zusätzliche Dateien aus dem Ordner publish erforderlich oder ausgeschlossen sein.For example, extra files might be required or excluded from the publish folder. Visual Studio verwendet MSBuild für die Webbereitstellung, und MSBuild kann für die Ausführung vieler weiterer Tasks während der Bereitstellung angepasst werden.Visual Studio uses MSBuild for web deployment, and MSBuild can be customized to do many other tasks during deployment. Weitere Informationen finden Sie unter Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps und im Buch Using MSBuild and Team Foundation Build (Verwenden von MSBuild und Team Foundation Build).For more information, see Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps and the Using MSBuild and Team Foundation Build book.

Mithilfe des Features zum Veröffentlichen einer Web-App oder der integrierten Git-Unterstützung können Apps direkt von Visual Studio in Azure App Service bereitgestellt werden.By using the Publish Web feature or built-in Git support, apps can be deployed directly from Visual Studio to the Azure App Service. Azure DevOps Services unterstützt Continuous Deployment in Azure App Service.Azure DevOps Services supports continuous deployment to Azure App Service. Weitere Informationen finden Sie unter DevOps mit ASP.NET Core und Azure.For more information, see DevOps with ASP.NET Core and Azure.

Veröffentlichen in AzurePublish to Azure

Anleitungen zum Veröffentlichen einer App in Azure mithilfe von Visual Studio finden Sie unter Veröffentlichen einer ASP.NET Core-App in Azure mit Visual Studio.See Veröffentlichen einer ASP.NET Core-App in Azure mit Visual Studio for instructions on how to publish an app to Azure using Visual Studio. Ein weiteres Beispiel wird unter Erstellen von ASP.NET Core-Web-Apps in Azure bereitgestellt.An additional example is provided by Create an ASP.NET Core web app in Azure.

Veröffentlichen mit MSDeploy unter WindowsPublish with MSDeploy on Windows

Anleitungen zum Veröffentlichen einer App mit einem Visual Studio-Veröffentlichungsprofil z.B. von einer Windows-Eingabeaufforderung mit dem Befehl dotnet msbuild finden Sie unter Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps.See Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps for instructions on how to publish an app with a Visual Studio publish profile, including from a Windows command prompt using the dotnet msbuild command.

IIS (Internet Information Services)Internet Information Services (IIS)

Informationen zu Bereitstellungen zu Internetinformationsdiensten (IIS) mit von der web.config-Datei bereitgestellter Konfiguration, finden Sie in den Artikeln unter Hosten von ASP.NET Core unter Windows mit IIS.For deployments to Internet Information Services (IIS) with configuration provided by the web.config file, see the articles under Hosten von ASP.NET Core unter Windows mit IIS.

Hosten in einer WebfarmHost in a web farm

Weitere Informationen zur Konfiguration des Hostings von ASP.NET Core-Apps in einer Webfarmumgebung (z.B. Bereitstellen mehrerer App-Instanzen zur besseren Skalierbarkeit) finden Sie unter Hosten von ASP.NET Core in einer Webfarm.For information on configuration for hosting ASP.NET Core apps in a web farm environment (for example, deployment of multiple instances of your app for scalability), see Hosten von ASP.NET Core in einer Webfarm.

Hosten auf DockerHost on Docker

Weitere Informationen finden Sie unter Hosten von ASP.NET Core in Docker-Containern.For more information, see Hosten von ASP.NET Core in Docker-Containern.

Zusätzliche RessourcenAdditional resources