Condividi tramite


Pubblicare un'app ASP.NET Core in IIS

Questa esercitazione mostra come ospitare un'app ASP.NET Core in un server IIS.

Questa esercitazione illustra le operazioni seguenti:

  • Installare il bundle di hosting di.NET Core in Windows Server.
  • Creare un sito IIS in Gestione IIS.
  • Distribuire un'app ASP.NET Core.

Prerequisites

  • .NET Core SDK installato nel computer di sviluppo.
  • Windows Server configurato con il ruolo del server Server Web (IIS). If your server isn't configured to host websites with IIS, follow the guidance in the IIS configuration section of the Host ASP.NET Core on Windows with IIS article and then return to this tutorial.

Warning

La configurazione di IIS e la sicurezza del sito Web coinvolgono concetti non trattati in questa esercitazione. Consultare le linee guida per IIS nella documentazione di Microsoft IIS e l'articolo di ASP.NET Core sull'hosting con IIS prima di ospitare app di produzione in IIS.

Gli scenari importanti per l'hosting di IIS non trattati in questa esercitazione includono:

Installare il bundle di hosting .NET Core

Installare il bundle di hosting .NET Core nel server IIS. L'aggregazione installa il runtime di .NET Core, la libreria di .NET Core e il modulo ASP.NET Core. Il modulo consente l'esecuzione delle app ASP.NET Core dietro IIS.

Scaricare il programma di installazione mediante il collegamento seguente:

Programma di installazione del bundle di hosting .NET Core corrente (download diretto)

  1. Eseguire il programma di installazione nel server IIS.

  2. Riavviare il server o eseguire seguito net stop was /y da net start w3svc in una shell dei comandi.

Creare il sito IIS

  1. Nel server IIS creare una cartella per contenere le cartelle e i file pubblicati dell'app. In un passaggio successivo, il percorso della cartella viene fornito a IIS come percorso fisico dell'app. Per altre informazioni sulla cartella di distribuzione e il layout dei file di un'app, vedere Struttura delle directory di ASP.NET Core.

  2. In IIS Manager, open the server's node in the Connections panel. Right-click the Sites folder. Select Add Website from the contextual menu.

  3. Provide a Site name and set the Physical path to the app's deployment folder that you created. Provide the Binding configuration and create the website by selecting OK.

    Warning

    Top-level wildcard bindings (http://*:80/ and http://+:80) should not be used. poiché possono introdurre vulnerabilità a livello di sicurezza nell'app. Questo concetto vale sia per i caratteri jolly sicuri che vulnerabili. Usare nomi host espliciti al posto di caratteri jolly. L'associazione con caratteri jolly del sottodominio (ad esempio, *.mysub.com) non costituisce un rischio per la sicurezza se viene controllato l'intero dominio padre (a differenza di *.com, che è vulnerabile). Vedere RFC 9110: Semantica HTTP (sezione 7.2). Host e :authority) per altre informazioni.

  4. Verificare che l'identità del modello di processo abbia le autorizzazioni necessarie.

    If the default identity of the app pool (Process Model>Identity) is changed from ApplicationPoolIdentity to another identity, verify that the new identity has the required permissions to access the app's folder, database, and other required resources. Ad esempio, il pool di applicazioni richiede l'accesso in lettura e scrittura alle cartelle in cui l'app legge e scrive i file.

Creare un'app ASP.NET Core

Creare qualsiasi tipo di app basata su server core ASP.NET.

Note

Questa esercitazione si basa sull'hosting di un'app ASP.NET Core sul lato server con IIS, incluso .Blazor Web App Per indicazioni sull'hosting e la distribuzione di un'app autonoma Blazor WebAssembly con IIS, vedere Ospitare e distribuire ASP.NET Core Blazor WebAssembly con IIS.

Pubblicare e distribuire l'app

Pubblicare un'app significa creare un'app compilata che può essere ospitata da un server. Distribuire un'app significa spostare l'app pubblicata in un sistema di hosting. Il passaggio di pubblicazione viene gestito da .NET Core SDK, mentre la fase di distribuzione può essere gestita tramite vari approcci. This tutorial adopts the folder deployment approach, where:

  • L'app viene pubblicata in una cartella.
  • The folder's contents are moved to the IIS site's folder (the Physical path to the site in IIS Manager).
  1. Right-click on the project in Solution Explorer and select Publish.
  2. Nella finestra di dialogo Selezionare una destinazione di pubblicazione selezionare l'opzione di pubblicazione Cartella.
  3. Impostare il percorso Cartella o condivisione file.
    • Se è stata creata una cartella per il sito IIS disponibile nel computer di sviluppo come una condivisione di rete, specificare il percorso della condivisione. L'utente corrente deve avere l'accesso in scrittura per la pubblicazione nella condivisione.
    • If you're unable to deploy directly to the IIS site folder on the IIS server, publish to a folder on removable media and physically move the published app to the IIS site folder on the server, which is the site's Physical path in IIS Manager. Move the contents of the bin/Release/{TARGET FRAMEWORK}/publish folder to the IIS site folder on the server, which is the site's Physical path in IIS Manager.
  4. Select the Publish button.

Esplorazione del sito Web

L'app è accessibile in un browser dopo la ricezione della prima richiesta. Inviare una richiesta all'app nell'associazione dell'endpoint che è stata stabilita in Gestione IIS per il sito.

Next steps

Questa esercitazione ha descritto come:

  • Installare il bundle di hosting di.NET Core in Windows Server.
  • Creare un sito IIS in Gestione IIS.
  • Distribuire un'app ASP.NET Core.

Per altre informazioni sull'hosting di app ASP.NET Core in IIS, vedere la panoramica su IIS:

Additional resources

Articoli nel set di documentazione di ASP.NET Core

Articoli relativi alla distribuzione di app ASP.NET Core

Articoli sulla configurazione HTTPS di IIS

Articoli su IIS e Windows Server

Risorse di distribuzione per amministratori IIS