Distribuire l'app in una cartella, IIS, Azure o in un'altra destinazione
Distribuendo un'applicazione, un servizio o un componente, è possibile distribuirlo per l'installazione in altri computer, dispositivi, server o nel cloud. Scegliere il metodo appropriato in Visual Studio per il tipo di distribuzione necessario.
Ottenere assistenza per l'attività di distribuzione:
Non si è certi dell'opzione di distribuzione da scegliere? Consulta Quali opzioni di pubblicazione sono giuste per me?
Per supporto nei problemi di distribuzione per Azure App Service o IIS, vedere Risoluzione dei problemi di ASP.NET Core su Azure App Service e IIS.
Per informazioni sulla configurazione delle impostazioni di distribuzione .NET, vedere Configurare le impostazioni di distribuzione .NET.
Per eseguire la distribuzione in una nuova destinazione, se in precedenza è stato creato un profilo di pubblicazione, selezionare Nuovo nella schermata Pubblica per il profilo configurato in precedenza. Viene visualizzato lo strumento Pubblica.
Scegliere quindi un'opzione di distribuzione nello strumento Publish. Per informazioni sulle opzioni di pubblicazione, vedere le sezioni seguenti.
Quali opzioni di pubblicazione sono appropriate per me?
Da Visual Studio, le applicazioni possono essere pubblicate direttamente nelle destinazioni seguenti:
- azzurro
- Registro Contenitore Docker
- DevTest Labs
- Cartella
- server FTP/FTPS
- server Web (IIS)
- Importa profilo
Le opzioni precedenti vengono visualizzate come illustrato nella figura seguente quando si crea un nuovo profilo di pubblicazione.
Per una breve panoramica delle opzioni di distribuzione delle applicazioni più generali, vedere Esaminare prima di tutto la distribuzione.
Azzurro
Quando si sceglie Azure, è possibile scegliere tra:
- Azure App Service in esecuzione su Windows, Linux o su immagine Docker
- Immagine Docker distribuita nel registro Azure Container
- Una macchina virtuale di Azure
Azure Container Apps
Azure Container Apps consente agli sviluppatori di creare e gestire applicazioni web e servizi containerizzati.
Anche se è possibile distribuire un'app in contenitori nel servizio app di Azure, Le app contenitore di Azure sono ottimizzate per usare le risorse in modo più efficiente per le app in contenitori, quindi ci sono risparmi sui costi e altri vantaggi dell'uso di App Contenitore di Azure.
Quando scegliere Azure Container Apps
- Le app e i servizi vengono eseguiti in un contenitore o in più contenitori
- È necessaria la disponibilità elevata e la scalabilità flessibile
- L'app ben si adatta a un'architettura di microservizi, con funzionalità suddivise in un set di servizi modulari a singola attività, spesso implementati come Funzioni di Azure. Ad esempio, set di servizi a singola attività eseguiti come processi discreti, rispondono agli eventi o elaborano le richieste da code o trigger.
- Si vogliono ottenere i vantaggi dell'orchestrazione dei contenitori (Kubernetes), ma non si vuole gestire direttamente Kubernetes. Se vuoi avere un controllo approfondito sull'infrastruttura di Kubernetes che supporta i tuoi servizi containerizzati, considera l'uso di Azure Kubernetes Service (AKS).
Servizio app di Azure
servizio app di Azure consente agli sviluppatori di creare rapidamente applicazioni Web e servizi scalabili senza gestire l'infrastruttura. Un servizio app viene eseguito su macchine virtuali ospitate nel cloud in Azure, ma queste macchine virtuali vengono gestite per te. A ogni app in un servizio app verrà assegnato un URL *.azurewebsites.net univoco; tutti i piani tariffari diversi da Gratuito consentono di assegnare nomi di dominio personalizzati al sito.
Per determinare quanta potenza di calcolo ha un App Service, scegli un piano tariffario o un piano per l'App Service contenitore. È possibile avere più app Web (e altri tipi di app) condividere lo stesso App Service senza modificare il piano tariffario. Ad esempio, è possibile ospitare le app Web di sviluppo, test e produzione nello stesso App Service.
Quando scegliere Servizio app di Azure
- Si vuole distribuire un'applicazione Web accessibile tramite Internet.
- Si vuole ridimensionare automaticamente l'applicazione Web in base alla domanda senza dover ridistribuire.
- Non si vuole gestire l'infrastruttura server (inclusi gli aggiornamenti software).
- Non sono necessarie personalizzazioni a livello di computer nei server che ospitano l'applicazione Web.
Se si vuole usare il servizio app di Azure nel proprio data center o in altri computer locali, è possibile usare il Azure Stack.
Per altre informazioni sulla pubblicazione nel servizio app, vedere:
- Guida rapida - Pubblicare su Azure App Service
- Avvio rapido di : pubblicare ASP.NET Core in Linux.
- Pubblicare un'app ASP.NET Core nel servizio app di Azure
- Risolvere i problemi relativi ad ASP.NET Core su Azure App Service e IIS.
Azure WebJobs
I WebJobs di Azure sono supportati tramite App Service. Consulta Sviluppare e distribuire WebJobs utilizzando Visual Studio.
Quando scegliere Processi Web di Azure
- Si dispone di un processo di lavoro, un calcolo che può essere eseguito senza interazione dell'utente.
- Il lavoro è su richiesta, attivato da un evento o continuo.
- Il processo viene eseguito in Windows o .NET Core in Linux (con Visual Studio 17.12 o versione successiva).
Un'altra opzione per scenari simili è Funzioni di Azure. Per scegliere l'opzione giusta per te, vedere Scegliere i servizi di integrazione e automazione corretti in Azure.
Registro container di Azure
Azure Container Registry consente di creare, archiviare e gestire immagini e artefatti dei container Docker in un registro privato per tutti i tipi di distribuzioni di container.
Quando scegliere il Registro Container Azure
- Quando si dispone di una pipeline di sviluppo e distribuzione di contenitori Docker esistente.
- Quando vuoi costruire immagini dei container Docker in Azure.
Per altre informazioni:
Macchina virtuale di Azure
Macchine Virtuali di Azure consente di creare e gestire un numero qualsiasi di risorse di calcolo nel cloud. Presupponendo la responsabilità di tutti i software e gli aggiornamenti nelle macchine virtuali, è possibile personalizzarli in base alle esigenze dell'applicazione. È possibile accedere alle macchine virtuali direttamente tramite Desktop remoto e ognuno manterrà l'indirizzo IP assegnato purché lo si desideri.
Il ridimensionamento di un'applicazione ospitata su macchine virtuali comporta l'avvio di macchine virtuali aggiuntive secondo la domanda e la distribuzione del software necessario. Questo livello di controllo aggiuntivo consente di ridimensionare in modo diverso in aree globali diverse. Ad esempio, se l'applicazione serve dipendenti in un'ampia gamma di uffici regionali, è possibile ridimensionare le macchine virtuali in base al numero di dipendenti in tali aree, riducendo potenzialmente i costi.
Per altre informazioni, vedere l'confronto dettagliato tra Servizio app di Azure, Macchine virtuali di Azure e altri servizi di Azure che è possibile usare come destinazione di distribuzione usando l'opzione Personalizzata in Visual Studio.
Quando scegliere Macchine virtuali di Azure
- Si vuole distribuire un'applicazione Web accessibile tramite Internet, con controllo completo sulla durata degli indirizzi IP assegnati.
- Sono necessarie personalizzazioni a livello di computer nei server, che includono software aggiuntivo, ad esempio un sistema di database specializzato, configurazioni di rete specifiche, partizioni del disco e così via.
- Si vuole un livello di controllo corretto sul ridimensionamento dell'applicazione Web.
- È necessario l'accesso diretto ai server che ospitano l'applicazione per qualsiasi altro motivo.
Se si vogliono usare macchine virtuali di Azure nel proprio data center o in altri computer locali, è possibile usare Azure Stack.
Registro dei container Docker
Se l'applicazione usa Docker, è possibile pubblicare l'applicazione in contenitori in un registro contenitori Docker.
Quando scegliere Registro Contenitori Docker
- Si vuole distribuire un'applicazione in contenitori
Per altre informazioni, vedere quanto segue:
DevTest Labs
Usare l'opzione di distribuzione tramite cartella nello strumento di pubblicazione se desideri distribuire in Azure DevTest Labs.
Per la procedura completa, vedere Pubblicare l'app per il test in una macchina virtuale di Azure DevTest Labs. Nell'articolo collegato la procedura di pubblicazione della cartella si applica a .NET Core/.NET 5+. Le altre istruzioni si applicano sia a .NET che a .NET Framework. Per le app ClickOnce di .NET Framework, è possibile usare la procedura guidata per la pubblicazione per pubblicare in una cartella.
Cartella
La distribuzione nel file system significa copiare i file dell'applicazione in una cartella specifica nel proprio computer. La distribuzione in una cartella viene spesso usata a scopo di test o per distribuire l'applicazione per l'uso da parte di un numero limitato di persone se il computer esegue anche un server. Se la cartella di destinazione è condivisa in una rete, la distribuzione nel file system può rendere disponibili i file dell'applicazione Web ad altri utenti che potrebbero quindi distribuirlo in server specifici.
A partire da Visual Studio 2019 16.8, la destinazione della cartella include la possibilità di pubblicare un'applicazione Windows .NET usando ClickOnce.
Per pubblicare un progetto desktop Windows .NET (.NET Core 3.1, .NET 5 e versioni successive) con ClickOnce, vedere Distribuire un'applicazione Windows .NET con ClickOnce.
Tutti i computer locali che eseguono un server possono rendere disponibile l'applicazione tramite Internet o Intranet a seconda della modalità di configurazione e delle reti a cui è connesso. Se si connette un computer direttamente a Internet, prestare particolare attenzione a proteggerlo dalle minacce alla sicurezza esterna. Poiché si gestiscono questi computer, si è in controllo completo delle configurazioni software e hardware.
Se per qualsiasi motivo , ad esempio l'accesso al computer, non è possibile usare servizi cloud come il servizio app di Azure o le macchine virtuali di Azure, è possibile usare il azure Stack nel proprio data center. Azure Stack consente di gestire e usare le risorse di calcolo tramite il servizio app di Azure e le macchine virtuali di Azure pur mantenendo tutto in locale.
Quando scegliere la distribuzione del file system
È necessario distribuire l'applicazione solo in una condivisione file, da cui altri la distribuiranno su server diversi.
Si vuole distribuire un'applicazione Windows .NET con ClickOnce
È necessaria solo una distribuzione di test locale.
Si vuole esaminare e potenzialmente modificare i file dell'applicazione in modo indipendente prima di inviarli a un'altra destinazione di distribuzione.
Per altre informazioni, vedere Guida introduttiva - Distribuzione in una cartella locale.
Per altre informazioni sulla distribuzione di un'applicazione Windows .NET con ClickOnce, vedere Distribuire un'applicazione Windows .NET con ClickOnce.
Per altre informazioni su come scegliere le impostazioni, vedere quanto segue:
- distribuzione dipendente dal framework e indipendente
- Identificatori di runtime di destinazione (RID portabile, ecc.)
- configurazioni di debug e release
Server FTP/FTPS
Un server FTP/FTPS consente di distribuire l'applicazione in un server diverso da Azure. Può essere distribuito in un file system o in qualsiasi altro server (Internet o Intranet) a cui si ha accesso, inclusi quelli in altri servizi cloud. Può funzionare con il web deploy (file o archivi .ZIP) e FTP.
Quando si sceglie un server FTP/FTPS, Visual Studio richiede un nome di profilo e quindi raccoglie informazioni aggiuntive Connessione, tra cui il server o la posizione di destinazione, un nome del sito e le credenziali. È possibile controllare i seguenti comportamenti nella scheda Impostazioni:
- Configurazione da distribuire.
- Indica se rimuovere i file esistenti dalla destinazione.
- Se si deve precompilare durante la pubblicazione.
- Indica se escludere i file nella cartella App_Data dalla distribuzione.
È possibile creare un numero qualsiasi di profili di distribuzione FTP/FTPS in Visual Studio, consentendo di gestire i profili con impostazioni diverse.
Quando scegliere la distribuzione del server FTP/FTPS
- Si usano servizi cloud in un provider diverso da Azure a cui è possibile accedere tramite URL.
- Si vuole distribuire usando credenziali diverse da quelle usate in Visual Studio o quelle collegate direttamente agli account Azure.
- Si desidera eliminare i file dalla destinazione ogni volta che si esegue il deploy.
Server Web (IIS)
Un server Web IIS consente di distribuire l'applicazione in un server Web diverso da Azure. Può essere distribuito in un server IIS (Internet o Intranet) a cui si ha accesso, inclusi quelli in altri servizi cloud. Può funzionare con Web Deploy o un pacchetto Web Deploy.
Quando si sceglie un server Web IIS, Visual Studio richiede un nome di profilo e quindi raccoglie informazioni aggiuntive Connessione, tra cui il server o la posizione di destinazione, un nome del sito e le credenziali. È possibile controllare i seguenti comportamenti nella scheda Impostazioni:
- Configurazione da distribuire.
- Indica se rimuovere i file esistenti dalla destinazione.
- Se decidere di precompilare durante la pubblicazione.
- Indica se escludere i file nella cartella App_Data dalla distribuzione.
È possibile creare un numero qualsiasi di profili di distribuzione server Web IIS in Visual Studio, consentendo di gestire i profili con impostazioni diverse.
Quando scegliere la distribuzione del server Web (IIS)
- Si usa IIS per pubblicare un sito o un servizio accessibile tramite URL.
- Si vuole distribuire usando credenziali diverse da quelle usate in Visual Studio o quelle collegate direttamente agli account Azure.
- Si desidera eliminare i file dalla destinazione ogni volta che viene effettuato il deploy.
Per altre informazioni, vedere Guida introduttiva - Eseguire il deployment su un sito web.
Per informazioni sulla risoluzione dei problemi di ASP.NET Core in IIS, vedere Risolvere i problemi di ASP.NET Core nel servizio app di Azure e iis.
Profilo di importazione
È possibile importare un profilo durante la pubblicazione in IIS o nel servizio app di Azure. È possibile configurare la distribuzione usando un file di impostazioni di pubblicazione (*.publishsettings). Un file di impostazioni di pubblicazione viene creato da IIS o dal servizio app di Azure oppure può essere creato manualmente e quindi può essere importato in Visual Studio.
L'uso di un file di impostazioni di pubblicazione può semplificare la configurazione della distribuzione e funziona meglio in un ambiente team rispetto alla configurazione manuale di ogni profilo di distribuzione.
Quando scegliere il profilo di importazione
- Stai pubblicando su IIS e vuoi semplificare la configurazione dell'implementazione.
- Si sta pubblicando in IIS o nel servizio app di Azure e si vuole velocizzare la configurazione della distribuzione per il riutilizzo o per i membri del team che pubblicano nello stesso servizio.
Per altre informazioni, vedere quanto segue:
- Importare le impostazioni di pubblicazione e distribuirlo in IIS
- Importare le impostazioni di pubblicazione e distribuire in Azure
Configurare le impostazioni di distribuzione .NET
Per altre informazioni su come scegliere le impostazioni, vedere quanto segue:
- distribuzione dipendente dal framework vs distribuzione autonoma
- Identificatori di runtime di destinazione (RID portabile, et al)
- configurazioni di debug e rilascio
Passaggi successivi
Tutorial: