Delen via


Een ASP.NET Core-app publiceren naar IIS

Deze zelfstudie laat zien hoe u een ASP.NET Core-app op een IIS-server host.

In deze zelfstudie worden de volgende onderwerpen behandeld:

  • Installeer de .NET Hosting Bundle op Windows Server.
  • Maak een IIS-site in IIS-beheer.
  • Een ASP.NET Core-app implementeren.

Prerequisites

  • .NET SDK geïnstalleerd op de ontwikkelcomputer.
  • Windows Server geconfigureerd met de webserverfunctie (IIS ). Als uw server niet is geconfigureerd voor het hosten van websites met IIS, volgt u de richtlijnen in de sectie IIS-configuratie van de Host ASP.NET Core in Windows met IIS-artikel en gaat u terug naar deze zelfstudie.

Warning

IIS-configuratie en websitebeveiliging omvatten concepten die niet worden behandeld in deze zelfstudie. Raadpleeg de IIS-richtlijnen in de Microsoft IIS-documentatie en het ASP.NET Core-artikel over het hosten met IIS voordat u productie-apps op IIS host.

Belangrijke scenario's voor IIS-hosting die niet in deze zelfstudie worden behandeld, zijn onder andere:

De .NET Hosting Bundle installeren

Installeer de .NET Hosting Bundle op de IIS-server. De bundel installeert de .NET Runtime, .NET-bibliotheek en de ASP.NET Core-module. Met de module kunnen ASP.NET Core-apps achter IIS worden uitgevoerd.

Download het installatieprogramma met behulp van de volgende koppeling:

Huidig installatieprogramma voor .NET Hosting Bundle (direct downloaden)

  1. Voer het installatieprogramma uit op de IIS-server.

  2. Start de server opnieuw op of voer net stop was /y gevolgd door net start w3svc uit in een opdrachtprompt.

De IIS-site maken

  1. Maak op de IIS-server een map die de gepubliceerde mappen en bestanden van de app bevat. In een volgende stap wordt het pad van de map aan IIS verstrekt als het fysieke pad naar de app. Voor meer informatie over de implementatiemap en bestandsindeling van een app, zie ASP.NET Core directory structure.

  2. Open in IIS-beheer het knooppunt van de server in het deelvenster Verbindingen. Klik met de rechtermuisknop op de map Sites. Selecteer Website toevoegen in het contextmenu.

  3. Geef een sitenaam op en stel het fysieke pad in op de implementatiemap van de app die u hebt gemaakt. Geef de bindingsconfiguratie op en maak de website door OK te selecteren.

    Warning

    Jokertekenbindingen op het hoogste niveau (http://*:80/ en http://+:80) mogen niet worden gebruikt. Wildcard-bindingen op het hoogste niveau maakt uw app kwetsbaar voor beveiligingsproblemen. Dit geldt zowel voor sterke als zwakke jokertekens. Gebruik expliciete hostnamen in plaats van het gebruik van jokertekens. Subdomeinbinding met jokertekens (bijvoorbeeld *.mysub.com) heeft dit beveiligingsrisico niet als u het hele bovenliggende domein bepaalt (in tegenstelling tot *.com, wat kwetsbaar is). Zie RFC 9110: HTTP-semantiek (sectie 7.2. Host en :authority) voor meer informatie.

  4. Controleer of de identiteit van het procesmodel de juiste machtigingen heeft.

    Als de standaardidentiteit van de app-pool (procesmodel>Identity) wordt gewijzigd van ApplicationPoolIdentity een andere identiteit, controleert u of de nieuwe identiteit over de vereiste machtigingen beschikt voor toegang tot de map, database en andere vereiste resources van de app. De app-pool vereist bijvoorbeeld lees- en schrijftoegang tot mappen waarin de app bestanden leest en schrijft.

Een ASP.NET Core-app maken

Maak elk type ASP.NET Core-server-app.

Note

Deze handleiding is gebaseerd op het hosten van een ASP.NET Core-app op de serverzijde met gebruik van IIS, inclusief een Blazor Web App. Zie Host en implementeer ASP.NET Core Blazor WebAssembly met IIS voor hulp bij het hosten en implementeren van een zelfstandige Blazor WebAssembly app met IIS.

De app publiceren en implementeren

Publiceer een app om een gecompileerde app te produceren die kan worden gehost door een server. Implementeer een app om de gepubliceerde app te verplaatsen naar een hostingsysteem. De publicatiestap wordt verwerkt door de .NET SDK, terwijl de implementatiestap kan worden verwerkt door verschillende benaderingen. In deze zelfstudie wordt de implementatiebenadering met mappen gebruikt, waarbij:

  • De app wordt gepubliceerd in een map.
  • De inhoud van de map wordt verplaatst naar de map van de IIS-site (het fysieke pad naar de site in IIS-beheer).
  1. Klik met de rechtermuisknop op het project in Solution Explorer en selecteer Publiceren.
  2. Selecteer in het dialoogvenster Publicatiedoel Kiezen de publicatieoptie Map.
  3. Stel het pad naar de map of bestandsdeling in.
    • Als u een map hebt gemaakt voor de IIS-site die beschikbaar is op de ontwikkelcomputer als netwerkshare, geeft u het pad naar de share op. De huidige gebruiker moet schrijftoegang hebben om naar de share te kunnen publiceren.
    • Als u niet rechtstreeks naar de IIS-sitemap op de IIS-server kunt implementeren, publiceert u naar een map op verwisselbare media en verplaatst u de gepubliceerde app fysiek naar de IIS-sitemap op de server. Dit is het fysieke pad van de site in IIS-beheer. Verplaats de inhoud van de bin/Release/{TARGET FRAMEWORK}/publish map naar de IIS-sitemap op de server. Dit is het fysieke pad van de site in IIS-beheer.
  4. Selecteer de knop Publiceren.

Door de website bladeren

De app is toegankelijk in een browser nadat deze de eerste aanvraag heeft ontvangen. Een aanvraag indienen bij de app op de eindpuntbinding die u hebt ingesteld in IIS Manager voor de site.

Next steps

In deze tutorial leerde je hoe je:

  • Installeer de .NET Hosting Bundle op Windows Server.
  • Maak een IIS-site in IIS-beheer.
  • Een ASP.NET Core-app implementeren.

Zie het artikel iis-overzicht voor meer informatie over het hosten van ASP.NET Core-apps op IIS:

Additional resources

Artikelen in de documentatieset van ASP.NET Core

Artikelen met betrekking tot ASP.NET Core-app-implementatie

Artikelen over de configuratie van HTTPS voor IIS

Artikelen over IIS en Windows Server

Implementatiebronnen voor IIS-beheerders