Delen via


ASP.NET Core hosten en implementeren

Notitie

Dit is niet de nieuwste versie van dit artikel. Zie de .NET 9-versie van dit artikelvoor de huidige release.

Waarschuwing

Deze versie van ASP.NET Core wordt niet meer ondersteund. Zie de .NET- en .NET Core-ondersteuningsbeleidvoor meer informatie. Zie de .NET 9-versie van dit artikelvoor de huidige release.

Belangrijk

Deze informatie heeft betrekking op een pre-releaseproduct dat aanzienlijk kan worden gewijzigd voordat het commercieel wordt uitgebracht. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt verstrekt.

Zie de .NET 9-versie van dit artikelvoor de huidige release.

Over het algemeen moet u een ASP.NET Core-app implementeren in een hostingomgeving:

  • Implementeer de gepubliceerde app in een map op de hostingserver.
  • Stel een procesbeheer in waarmee de app wordt gestart wanneer aanvragen binnenkomen en de app opnieuw wordt opgestart nadat deze vastloopt of de server opnieuw wordt opgestart.
  • Voor de configuratie van een omgekeerde proxy stelt u een omgekeerde proxy in om aanvragen door te sturen naar de app.

Zie voor host- en implementatierichtlijnen Blazor, die de richtlijnen in dit knooppunt aanvullen of vervangen, Host en implementeer ASP.NET Core Blazor.

Publiceren in een map

Met de dotnet publish-opdracht wordt de app-code gecompileerd en worden de vereiste bestanden gekopieerd die nodig zijn om de app uit te voeren naar een map voor publicatie. Bij het implementeren vanuit Visual Studio vindt de dotnet publish stap automatisch plaats voordat de bestanden naar het implementatiedoel worden gekopieerd.

De gepubliceerde app lokaal uitvoeren

Als u de gepubliceerde app lokaal wilt uitvoeren, voert u dotnet <ApplicationName>.dll uit vanuit de map publiceren.

Instellingenbestanden publiceren

*.json bestanden worden standaard gepubliceerd. Als u andere instellingenbestanden wilt publiceren, geeft u deze op in een <ItemGroup><Content Include= ... /> element in het projectbestand. In het volgende voorbeeld worden XML-bestanden gepubliceerd:

<ItemGroup>
  <Content Include="**\*.xml" Exclude="bin\**\*;obj\**\*"
    CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

Mapinhoud

De map publiceert, bevat een of meer app-assemblybestanden, afhankelijkheden en optioneel de .NET-runtime.

Een .NET Core-app kan worden gepubliceerd als zelfstandige implementatie of frameworkafhankelijke implementatie. Als de app zelfstandig functioneert, worden de assemblybestanden die de .NET-runtime bevatten, opgenomen in de map voor publicatie. Als de app frameworkafhankelijk is, worden de .NET Runtime-bestanden niet opgenomen omdat de app een verwijzing heeft naar een versie van .NET die op de server is geïnstalleerd. Het standaardimplementatiemodel is frameworkafhankelijk. Zie .NET Core-toepassingsimplementatievoor meer informatie.

Naast .exe- en .dll-bestanden, bevat de map voor een ASP.NET Core-app doorgaans configuratiebestanden, statische assets en MVC-weergaven. Zie ASP.NET Core-directorystructuurvoor meer informatie.

Een procesbeheerder instellen

Een ASP.NET Core-app is een console-app die moet worden gestart wanneer een server wordt opgestart en opnieuw wordt opgestart als deze vastloopt. Als u het starten en opnieuw opstarten wilt automatiseren, is een procesbeheerder vereist. De meest voorkomende procesmanagers voor ASP.NET Core zijn:

Een omgekeerde proxy instellen

Als de app gebruikmaakt van de Kestrel-server, kan Nginx-of IIS- worden gebruikt als een omgekeerde proxyserver. Een omgekeerde proxyserver ontvangt HTTP-aanvragen van internet en stuurt deze door naar Kestrel.

Configuratie, met of zonder een omgekeerde proxyserver, is een ondersteunde hostingconfiguratie. Zie Wanneer u Kestrel gebruikt met een omgekeerde proxyvoor meer informatie.

Configuratie, met of zonder een omgekeerde proxyserver, is een ondersteunde hostingconfiguratie. Zie Wanneer u Kestrel gebruikt met een omgekeerde proxyvoor meer informatie.

Scenario's voor proxyserver en load balancer

Er is mogelijk extra configuratie vereist voor apps die worden gehost achter proxyservers en load balancers. Zonder extra configuratie heeft een app mogelijk geen toegang tot het schema (HTTP/HTTPS) en het externe IP-adres waar een aanvraag vandaan komt. Zie ASP.NET Core configureren voor gebruik met proxyservers en load balancersvoor meer informatie.

Visual Studio en MSBuild gebruiken om implementaties te automatiseren

Implementatie vereist vaak extra taken, naast het kopiëren van de uitvoer van dotnet publish naar een server. Er kunnen bijvoorbeeld extra bestanden vereist of uitgesloten zijn van de map publiceren. Visual Studio maakt gebruik van MSBuild voor webimplementatie en MSBuild kan worden aangepast om veel andere taken uit te voeren tijdens de implementatie. Voor meer informatie, zie Visual Studio-publicatieprofielen (.pubxml) voor de implementatie van ASP.NET Core-apps en het boek Using MSBuild and Team Foundation Build.

Met behulp van de functie Web publiceren kunnen-apps rechtstreeks vanuit Visual Studio naar de Azure App Service worden geïmplementeerd. Azure DevOps Services ondersteunt continue implementatie naar Azure App Service. Zie DevOps voor ASP.NET Core Developersvoor meer informatie.

Publiceren naar Azure

Zie Een ASP.NET Core-app publiceren naar Azure met Visual Studio voor instructies over het publiceren van een app naar Azure met behulp van Visual Studio. Een extra voorbeeld is Een ASP.NET Core-web-app maken in Azure.

Publiceren met MSDeploy in Windows

Zie Visual Studio-publicatieprofielen (.pubxml) voor ASP.NET Core-app-implementatie voor instructies over het publiceren van een app met een Visual Studio-publicatieprofiel, waaronder vanaf een Windows-opdrachtprompt met behulp van de opdracht dotnet msbuild.

Internet Information Services (IIS)

Zie voor implementaties naar Internet Information Services (IIS) met configuratie geleverd door het web.config-bestand de artikelen onder ASP.NET Core hosten op Windows met IIS.

Hosten in een webfarm

Zie Host ASP.NET Core in een webfarm-voor informatie over de configuratie voor het hosten van ASP.NET Core-apps in een webfarmomgeving (bijvoorbeeld de implementatie van meerdere exemplaren van uw app voor schaalbaarheid).

Host op Docker

Zie Host ASP.NET Core in Docker-containersvoor meer informatie.

Statuscontroles uitvoeren

Gebruik Health Check Middleware om statuscontroles uit te voeren op een app en de bijbehorende afhankelijkheden. Zie Health-controles in ASP.NET Corevoor meer informatie.

Aanvullende informatiebronnen

Over het algemeen moet u een ASP.NET Core-app implementeren in een hostingomgeving:

  • Implementeer de gepubliceerde app in een map op de hostingserver.
  • Stel een procesbeheer in waarmee de app wordt gestart wanneer aanvragen binnenkomen en de app opnieuw wordt opgestart nadat deze vastloopt of de server opnieuw wordt opgestart.
  • Voor de configuratie van een omgekeerde proxy stelt u een omgekeerde proxy in om aanvragen door te sturen naar de app.

Publiceren in een map

Met de dotnet publish-opdracht wordt de app-code gecompileerd en worden de bestanden gekopieerd die nodig zijn om de app uit te voeren naar een publiceer-map. Bij het implementeren vanuit Visual Studio vindt de dotnet publish stap automatisch plaats voordat de bestanden naar het implementatiedoel worden gekopieerd.

Mapinhoud

De map bevat een of meer app-assemblybestanden, afhankelijkheden en optioneel de .NET-runtime.

Een .NET Core-app kan worden gepubliceerd als zelfstandige implementatie of frameworkafhankelijke implementatie. Als de app zelfstandig is, worden de assemblybestanden die de .NET-runtime bevatten opgenomen in de publicatiemap. Als de app frameworkafhankelijk is, worden de .NET Runtime-bestanden niet opgenomen omdat de app een verwijzing heeft naar een versie van .NET die op de server is geïnstalleerd. Het standaardimplementatiemodel is frameworkafhankelijk. Zie .NET Core-toepassingsimplementatievoor meer informatie.

Naast .exe- en .dll-bestanden, bevat de map voor een ASP.NET Core-app doorgaans configuratiebestanden, statische assets en MVC-weergaven. Zie ASP.NET Core-directorystructuurvoor meer informatie.

Een procesbeheerder instellen

Een ASP.NET Core-app is een console-app die moet worden gestart wanneer een server wordt opgestart en opnieuw wordt opgestart als deze vastloopt. Als u het starten en opnieuw opstarten wilt automatiseren, is een procesbeheerder vereist. De meest voorkomende procesmanagers voor ASP.NET Core zijn:

Een omgekeerde proxy instellen

Als de app gebruikmaakt van de Kestrel-server, kan Nginx-of IIS- worden gebruikt als een omgekeerde proxyserver. Een omgekeerde proxyserver ontvangt HTTP-aanvragen van internet en stuurt deze door naar Kestrel.

Configuratie, met of zonder een omgekeerde proxyserver, is een ondersteunde hostingconfiguratie. Zie Wanneer u Kestrel gebruikt met een omgekeerde proxyvoor meer informatie.

Scenario's voor proxyserver en load balancer

Er is mogelijk extra configuratie vereist voor apps die worden gehost achter proxyservers en load balancers. Zonder extra configuratie heeft een app mogelijk geen toegang tot het schema (HTTP/HTTPS) en het externe IP-adres waar een aanvraag vandaan komt. Zie ASP.NET Core configureren voor gebruik met proxyservers en load balancersvoor meer informatie.

Visual Studio en MSBuild gebruiken om implementaties te automatiseren

Implementatie vereist vaak extra taken, naast het kopiëren van de uitvoer van dotnet publish naar een server. Er kunnen bijvoorbeeld extra bestanden vereist of uitgesloten zijn van de map publiceren. Visual Studio maakt gebruik van MSBuild voor webimplementatie en MSBuild kan worden aangepast om veel andere taken uit te voeren tijdens de implementatie. Zie Visual Studio-publicatieprofielen (.pubxml) voor ASP.NET Core-app-implementatie en het MsBuild en Team Foundation Build boek gebruiken voor meer informatie.

Met behulp van de functie Web publiceren, kunnen apps rechtstreeks vanuit Visual Studio worden geïmplementeerd in Azure App Service. Azure DevOps Services ondersteunt continue implementatie naar Azure App Service. Zie DevOps voor ASP.NET Core Developersvoor meer informatie.

Publiceren naar Azure

Zie Een ASP.NET Core-app publiceren naar Azure met Visual Studio voor instructies over het publiceren van een app naar Azure met behulp van Visual Studio. Een extra voorbeeld is Een ASP.NET Core-web-app maken in Azure.

Publiceren met MSDeploy in Windows

Zie Visual Studio-publicatieprofielen (.pubxml) voor ASP.NET Core-app-implementatie voor instructies over het publiceren van een app met een Visual Studio-publicatieprofiel, waaronder vanaf een Windows-opdrachtprompt met behulp van de opdracht dotnet msbuild.

Internet Information Services (IIS)

Voor implementaties naar Internet Information Services (IIS) met configuratie die wordt geleverd door het web.config-bestand, zie de artikelen onder Host ASP.NET Core op Windows met IIS.

Hosten in een webfarm

Zie Host ASP.NET Core in een webfarm-voor informatie over de configuratie voor het hosten van ASP.NET Core-apps in een webfarmomgeving (bijvoorbeeld de implementatie van meerdere exemplaren van uw app voor schaalbaarheid).

Host op Docker

Zie Host ASP.NET Core in Docker-containersvoor meer informatie.

Aanvullende informatiebronnen