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.

Prerequisiti

  • .NET Core SDK installato nel computer di sviluppo.
  • Windows Server configurato con il ruolo del server Server Web (IIS). Se il server non è configurato per ospitare siti Web con IIS, seguire le indicazioni riportate nella sezione Configurazione IIS dell'articolo Host ASP.NET Core in Windows con IIS e quindi tornare a questa esercitazione.

Avviso

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 Gestione IIS aprire il nodo del server nel pannello Connessioni. Fare clic con il pulsante destro del mouse sulla cartella Siti. Scegliere Aggiungi sito Web dal menu di scelta rapida.

  3. Specificare un Nome del sito e impostare il Percorso fisico per la cartella di distribuzione dell'app che è stata creata. Specificare la configurazione in Binding e creare il sito Web selezionando OK.

    Avviso

    Le associazioni con caratteri jolly di livello superiore (http://*:80/ e http://+:80) non devono essere usate, 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. Confermare che l'identità del modello del processo disponga delle autorizzazioni appropriate.

    Se l'identità predefinita del pool di app (ModelloIdentity> di processo) viene modificata da ApplicationPoolIdentity a un'altra identità, verificare che la nuova identità disponga delle autorizzazioni necessarie per accedere alla cartella, al database e ad altre risorse necessarie dell'app. 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 Core Razor Pages ASP.NET

Seguire l'esercitazione Introduzione a ASP.NET Core per creare un'app Razor Pages.

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. Questa esercitazione adotta l'approccio di distribuzione tramite una cartella, in cui:

  • L'app viene pubblicata in una cartella.
  • Il contenuto della cartella viene spostato nella cartella del sito IIS, ovvero il percorso fisico del sito in Gestione IIS.
  1. Fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Pubblica.
  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.
    • Se non è possibile eseguire la distribuzione direttamente nella cartella del sito IIS nel server IIS, pubblicare in una cartella su supporti rimovibili e spostare fisicamente l'app pubblicata nella cartella del sito IIS nel server, ovvero il percorso fisico del sito in Gestione IIS. Spostare il contenuto della bin/Release/{TARGET FRAMEWORK}/publish cartella nella cartella del sito IIS nel server, ovvero il percorso fisico del sito in Gestione IIS.
  4. Selezionare il pulsante Pubblica.

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.

Passaggi successivi

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:

Risorse aggiuntive

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