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:
- Creazione di un hive del Registro di sistema per la protezione dei dati ASP.NET Core
- Configurazione dell'elenco di controllo di accesso (ACL) del pool di app
- Per concentrarsi sui concetti correlati alla distribuzione di IIS, questa esercitazione illustra come distribuire un'app senza sicurezza HTTPS configurata in IIS. Per altre informazioni sull'hosting di un'app abilitata per il protocollo HTTPS, vedere gli argomenti relativi alla sicurezza nella sezione Risorse aggiuntive di questo articolo. Altre indicazioni per l'hosting di app ASP.NET Core sono disponibili nell'articolo Host ASP.NET Core in Windows con IIS .
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)
Eseguire il programma di installazione nel server IIS.
Riavviare il server o eseguire seguito
net stop was /y
danet start w3svc
in una shell dei comandi.
Creare il sito IIS
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.
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.
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/
ehttp://+: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.Verificare che il modello identity di processo disponga delle autorizzazioni appropriate.
Se il valore predefinito identity del pool di app (ModelloIdentity> di processo) viene modificato da
ApplicationPoolIdentity
a un altro identity, verificare che il nuovo identity abbia le 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.
- Fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Pubblica.
- Nella finestra di dialogo Selezionare una destinazione di pubblicazione selezionare l'opzione di pubblicazione Cartella.
- 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.
- 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
- Modulo ASP.NET Core (ANCM) per IIS
- ASP.NET struttura di directory core
- Risolvere i problemi di ASP.NET Core in Servizio app di Azure e IIS
- Imporre HTTPS in ASP.NET Core
- WebSockets in IIS
Articoli relativi alla distribuzione di app ASP.NET Core
- Pubblicare un'app ASP.NET Core in Azure con Visual Studio
- Pubblicare un'app ASP.NET Core in Azure con Visual Studio Code
- Profili di pubblicazione di Visual Studio (.pubxml) per la distribuzione di app ASP.NET Core
Articoli sulla configurazione HTTPS di IIS
Articoli su IIS e Windows Server
Risorse di distribuzione per amministratori IIS
- Documentazione di ISS
- Getting Started with the IIS Manager in IIS (Introduzione a Gestione IIS in IIS)
- Distribuzione di applicazioni .NET Core
- Modulo ASP.NET Core (ANCM) per IIS
- ASP.NET struttura di directory core
- Moduli IIS con ASP.NET Core
- Risolvere i problemi di ASP.NET Core in Servizio app di Azure e IIS
- Risoluzione di errori comuni di Servizio app di Azure e IIS con ASP.NET Core
- Sessioni permanenti con il routing delle richieste dell'applicazione