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 adatte per me?
Per informazioni sui problemi di distribuzione per Servizio app di Azure o IIS, vedere Risolvere i problemi di ASP.NET Core nel servizio app di Azure 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 strumento Pubblica.
Quindi, scegliere un'opzione di distribuzione nello strumento Pubblica. 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 di Container 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 su Windows, Linux o come immagine Docker
- Immagine Docker distribuita in registro Azure Container
- Una macchina virtuale di Azure
App azure Container
app Azure Container consente agli sviluppatori di creare e gestire applicazioni Web e servizi in contenitori.
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 App Azure Container
- Le app e i servizi vengono eseguiti in un contenitore o in più contenitori
- È necessaria la disponibilità elevata e la scalabilità flessibile
- L'app è adatta a un modello architettonico a microservizi, con funzionalità suddivise in un insieme di servizi modulari a singolo compito implementati in genere 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 si vuole un controllo approfondito sull'infrastruttura Kubernetes che supporta i servizi in contenitori, è consigliabile usare servizio Azure Kubernetes.
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 in macchine virtuali ospitate nel cloud in Azure, ma queste macchine virtuali vengono gestite dall'utente. 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 la potenza di calcolo di un servizio app, scegliere un piano tariffario o un piano per il servizio app contenitore. È possibile avere più app Web (e altri tipi di app) condividono lo stesso servizio app senza modificare il piano tariffario. Ad esempio, è possibile ospitare le app Web di sviluppo, gestione temporanea e produzione nello stesso servizio app.
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:
- Avvio rapido - Pubblicare nel Servizio App di Azure
- 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 App Service di Azure e IIS.
Azure WebJobs
I WebJobs di Azure sono supportati tramite App Service. Vedi Sviluppare e distribuire WebJobs con Visual Studio.
Quando scegliere Azure WebJobs
- Si dispone di un processo di lavoro, un calcolo che può essere eseguito senza interazione dell'utente.
- Il processo è 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 più adatta, vedere Scegliere i servizi di integrazione e automazione corretti in Azure.
Registro dei container di Azure
Azure Container Registry consente di creare, archiviare e gestire immagini e artefatti del container Docker in un registro privato per tutti i tipi di distribuzioni di container.
Quando scegliere l'Azure Container Registry
- Quando si dispone di una pipeline di sviluppo e distribuzione di contenitori Docker esistente.
- Quando si vogliono compilare immagini del contenitore 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 in macchine virtuali comporta la rotazione di macchine virtuali aggiuntive in base alla richiesta e quindi alla 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 Distribuzione cartelle nello strumento Pubblica se si vuole eseguire la distribuzione 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 pubblicazione guidata 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
Bisogna solo distribuire l'applicazione su una condivisione file dalla quale altri potranno distribuirla 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 - Implementare 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 vs Autonoma
- Identificatori di runtime di destinazione (RID portabile, ecc.)
- configurazioni di debug e rilascio
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 la distribuzione web (file o .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 di:
- Configurazione da distribuire.
- Indica se rimuovere i file esistenti dalla destinazione.
- Se 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 viene distribuito.
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 con un pacchetto di 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 di:
- Configurazione da distribuire.
- Indica se rimuovere i file esistenti dalla destinazione.
- Se 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 distribuito.
Per ulteriori informazioni, vedere Guida introduttiva - Distribuire in 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.
Importa profilo
È 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
- Si sta pubblicando in IIS e si vuole semplificare la configurazione della distribuzione.
- 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 Autonoma
- Identificatori di runtime di destinazione (RID portabile, ecc.)
- configurazioni di debug e rilascio
Passaggi successivi
Tutorials: