Introduzione
Inizialmente la distribuzione di un'applicazione .NET Core in Internet Information Services (IIS) può sembrare complessa, ma con i passaggi corretti diventa un processo semplice. Questa guida ti guiderà attraverso la distribuzione dell'applicazione .NET Core in IIS, dai prerequisiti alla risoluzione dei problemi comuni.
Prerequisiti
Prima di iniziare, assicurati di avere quanto segue:
- Pacchetto runtime e hosting .NET Core : installato sul server su cui è in esecuzione IIS. Questo bundle consente a IIS di ospitare applicazioni .NET Core.
- IIS configurato su Windows Server : assicurati che IIS sia installato e in esecuzione. È possibile installarlo tramite Windows Server Manager o PowerShell.
- Accesso amministratore : avrai bisogno dell'accesso amministratore al server per installare il pacchetto di hosting e configurare IIS.
Passaggio 1: installare il pacchetto di hosting .NET Core
Visita la pagina di download ufficiale di .NET.
Seleziona la versione richiesta e scarica il pacchetto di hosting .NET Core
Esegui il programma di installazione sul tuo server. Verranno installati .NET Core Runtime , .NET Core Library e il modulo ASP.NET Core . Il modulo ASP.NET Core è un componente necessario per ospitare applicazioni .NET Core in IIS.
Riavviare IIS per caricare i moduli appena installati. Puoi farlo eseguendo iisreset nel prompt dei comandi.
Passaggio 2: pubblicare l'applicazione .NET Core
Utilizzando Visual Studio
Apri la tua soluzione in Visual Studio.
Fai clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e seleziona "Pubblica" .
Scegli "Cartella" come destinazione di pubblicazione e specifica una cartella in cui pubblicare i file dell'applicazione.
Fai clic su "Pubblica" , Visual Studio compilerà la tua applicazione e copierà i file necessari nella cartella specificata.
Utilizzando il prompt dei comandi
Per pubblicare l'applicazione .NET Core, passare alla directory del progetto nella riga di comando. Quindi, esegui il seguente comando:
dotnet publish -c Release
Questo comando compila l'applicazione in modalità di rilascio e invia l'output alla directory "bin/Release/netcoreapp{version}/publish" .
Passaggio 3: creare un pool di applicazioni IIS
Utilizzando Gestione IIS
Apri Gestione IIS.
Nel riquadro "Connessioni" , fare clic con il tasto destro su "Pool di applicazioni" e selezionare "Aggiungi pool di applicazioni" .
Assegnare un nome al pool di applicazioni e impostare la versione di .NET CLR su "Nessun codice gestito" poiché .NET Core non si basa sul runtime CLR. La modalità pipeline gestita deve essere impostata su "Integrata".
Fare clic su "OK" per creare il pool di applicazioni.
Utilizzando il prompt dei comandi
Apri il prompt dei comandi come amministratore.
Esegui i seguenti comandi:
cd %windir%\system32\inetsrv
appcmd add apppool /name:"DotNetCorePool" /managedRuntimeVersion:"" /managedPipelineMode:"Integrated"
Sostituisci "DotNetCorePool" con il nome che desideri dare al tuo nuovo pool di applicazioni.
Passaggio 4: distribuire l'applicazione su IIS
Utilizzando Gestione IIS
In Gestione IIS, fai clic con il pulsante destro del mouse su "Siti" nel riquadro "Connessioni" e scegli "Aggiungi sito web" .
Inserisci un nome per il tuo sito web e seleziona il pool di applicazioni creato in precedenza.
Per il percorso fisico, sfoglia e seleziona la cartella in cui hai pubblicato l'applicazione .NET Core.
Specificare le informazioni di associazione (ad esempio, indirizzo IP, porta e nome host).
Fare clic su "OK" per aggiungere il sito Web.
Utilizzando il prompt dei comandi
Puoi anche creare un sito Web in IIS utilizzando il prompt dei comandi. Per creare un sito web, digitare:
cd %windir%\system32\inetsrv
appcmd add site /name:MyWebsite /physicalPath:C:\inetpub\wwwroot\MyApp /bindings:http/*:80:example.com /apppool:DotNetCorePool
Sostituisci "MyWebsite" con il nome del tuo sito web, C:\inetpub\wwwroot\MyApp con il percorso dell'applicazione, example.com con il nome del tuo dominio e DotNetCorePool con il pool di applicazioni creato nel passaggio precedente.
Passaggio 5: configurare il modulo ASP.NET Core
Assicurati che il file web.config sia configurato correttamente affinché il modulo ASP.NET Core inoltri le richieste HTTP alla tua applicazione. Questo file deve essere incluso nell'output pubblicato e contenere impostazioni come le seguenti:
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\YourApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
</system.webServer>
</configuration>
Sostituisci YourApplication.dll con il nome della dll dell'applicazione.
Passaggio 6: testa la tua applicazione
Apri un browser web e vai all'URL che hai configurato per il tuo sito. Se tutto è configurato correttamente, l'applicazione .NET Core dovrebbe essere in esecuzione su IIS.
Risoluzione dei problemi comuni
Errore HTTP 502.5 – Errore di processo : spesso indica un problema con il processo di avvio dell'applicazione. Controllare i registri eventi e i registri stdout (se abilitati) per errori specifici.
Errore interno del server 500 : ciò può verificarsi per vari motivi, inclusi problemi con il file web.config o dipendenze dell'applicazione. Ancora una volta, i registri sono preziosi per diagnosticare questi problemi.
404 File o directory non trovato : ciò può verificarsi se il percorso fisico dell'applicazione non è corretto o se il pool di applicazioni non è configurato correttamente.
Conclusione
La distribuzione di un'applicazione .NET Core in IIS prevede diversi passaggi, dall'installazione del bundle di hosting .NET Core alla configurazione di IIS e alla pubblicazione dell'applicazione. Seguendo questa guida è possibile garantire un processo di distribuzione fluido e avere l'applicazione .NET Core in esecuzione su IIS in pochissimo tempo. Ricorda, la risoluzione dei problemi è parte integrante della distribuzione, quindi non lasciarti scoraggiare dai intoppi iniziali; utilizzare i registri e i messaggi di errore come guide per risolvere eventuali problemi.