Distribuire l'app nel servizio app di Azure usando FTP/SDeploy your app to Azure App Service using FTP/S

Questo articolo illustra come usare FTP o FTPS per distribuire l'app Web, il back-end dell'app per dispositivi mobili o l'app per le API nel servizio app di Azure.This article shows you how to use FTP or FTPS to deploy your web app, mobile app backend, or API app to Azure App Service.

L'endpoint FTP/S per l'app è già attivo.The FTP/S endpoint for your app is already active. Non è necessaria alcuna configurazione per abilitare la distribuzione FTP/S.No configuration is necessary to enable FTP/S deployment.

Aprire un dashboard FTPOpen FTP dashboard

  1. Nella portale di Azurecercare e selezionare Servizi app.In the Azure portal, search for and select App Services.

    Cercare i servizi app.

  2. Selezionare l'app Web che si vuole distribuire.Select the web app you want to deploy.

    Selezionare l'app.

  3. Selezionare centro distribuzione > Dashboard > FTP .Select Deployment Center > FTP > Dashboard.

    Aprire un dashboard FTP

Ottenere informazioni di connessione a FTPGet FTP connection information

Nel dashboard FTP selezionare copia per copiare l'endpoint FTPS e le credenziali dell'app.In the FTP dashboard, select Copy to copy the FTPS endpoint and app credentials.

Copiare le informazioni FTP

È consigliabile usare Credenziali dell'app per distribuire l'app perché si tratta di informazioni univoche per ogni app.It's recommended that you use App Credentials to deploy to your app because it's unique to each app. Tuttavia, se si fa clic su Credenziali utente, è possibile impostare le credenziali a livello di utente da usare per l'accesso FTP/S a tutte le app del servizio app della sottoscrizione.However, if you click User Credentials, you can set user-level credentials that you can use for FTP/S login to all App Service apps in your subscription.

Nota

L'autenticazione a un endpoint FTP/FTPS usando le credenziali a livello di utente richiede un nome utente nel formato seguente:Authenticating to an FTP/FTPS endpoint using user-level credentials requirers a username in the following format:

<app-name>\<user-name>

Poiché le credenziali a livello di utente sono collegate all'utente e non a una risorsa specifica, il nome utente deve essere in questo formato per indirizzare l'azione di accesso all'endpoint dell'app corretto.Since user-level credentials are linked to the user and not a specific resource, the username must be in this format to direct the sign-in action to the right app endpoint.

Distribuire file in AzureDeploy files to Azure

  1. Nel client FTP, ad esempio Visual Studio, Cyberduck o WinSCP, usare le specifiche informazioni raccolte per connettersi all'app.From your FTP client (for example, Visual Studio, Cyberduck, or WinSCP), use the connection information you gathered to connect to your app.
  2. Copiare i file e la struttura di directory corrispondente nella directory /site/wwwroot in Azure o nella directory /site/wwwroot/App_Data/Jobs/ per i processi Web.Copy your files and their respective directory structure to the /site/wwwroot directory in Azure (or the /site/wwwroot/App_Data/Jobs/ directory for WebJobs).
  3. Passare all'URL dell'app per verificare che l'applicazione venga eseguita correttamente.Browse to your app's URL to verify the app is running properly.

Nota

Diversamente dalle distribuzioni basate su Git, la distribuzione FTP non supporta le automazioni di distribuzione seguenti:Unlike Git-based deployments, FTP deployment doesn't support the following deployment automations:

  • Ripristino delle dipendenze (ad esempio, automazioni NuGet, NPM, PIP e Composer)dependency restores (such as NuGet, NPM, PIP, and Composer automations)
  • Compilazione di file binari .NETcompilation of .NET binaries
  • Generazione di web.config (esempio di Node.js)generation of web.config (here is a Node.js example)

Generare questi file necessari manualmente nel computer locale e quindi distribuirli insieme all'app.Generate these necessary files manually on your local machine, and then deploy them together with your app.

Applicare FTPSEnforce FTPS

Per migliorare la sicurezza ottimale, è consigliabile consentire solo FTP su SSL.For enhanced security, you should allow FTP over SSL only. È anche possibile disabilitare FTP e FTPS se non si usa la distribuzione FTP.You can also disable both FTP and FTPS if you don't use FTP deployment.

Nella pagina delle risorse dell'app, in portale di Azure, selezionare configurazione > Impostazioni generali dal dispositivo di spostamento a sinistra.In your app's resource page in Azure portal, select Configuration > General settings from the left navigation.

Per disabilitare l'FTP non crittografato, selezionare FTPS solo nello stato FTP.To disable unencrypted FTP, select FTPS Only in FTP state. Per disabilitare completamente FTP e FTPS, selezionare disattivato.To disable both FTP and FTPS entirely, select Disabled. Al termine fare clic su Salva.When finished, click Save. Se si usa solo FTPS, è necessario applicare TLS 1,2 o versione successiva passando al pannello delle Impostazioni TLS/SSL dell'app Web.If using FTPS Only, you must enforce TLS 1.2 or higher by navigating to the TLS/SSL settings blade of your web app. TLS 1.0 e 1.1 non sono supportati con Solo FTPS.TLS 1.0 and 1.1 are not supported with FTPS Only.

Disabilitare FTP/FTPS

Automatizzazione con gli scriptAutomate with scripts

Per la distribuzione FTP tramite l'interfaccia della riga di comando di Azure, vedere Creare un'app Web e distribuire i file con FTP.For FTP deployment using Azure CLI, see Create a web app and deploy files with FTP (Azure CLI).

Per la distribuzione FTP tramite Azure PowerShell, vedere Caricare i file in un'app Web tramite FTP.For FTP deployment using Azure PowerShell, see Upload files to a web app using FTP (PowerShell).

Cosa accade all'app durante la distribuzione?What happens to my app during deployment?

Tutti i metodi di distribuzione ufficialmente supportati consentono di apportare modifiche ai file nella cartella /home/site/wwwroot dell'app.All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. Questi file vengono usati per eseguire l'app.These files are used to run your app. Pertanto, la distribuzione può avere esito negativo a causa di file bloccati.Therefore, the deployment can fail because of locked files. L'app può anche comportarsi in modo imprevedibile durante la distribuzione, perché non tutti i file vengono aggiornati contemporaneamente.The app may also behave unpredictably during deployment, because not all the files updated at the same time. Questa operazione non è auspicabile per un'app rivolte ai clienti.This is undesirable for a customer-facing app. Per evitare questi problemi sono disponibili varie alternative:There are a few different ways to avoid these issues:

Risolvere i problemi di distribuzione FTPTroubleshoot FTP deployment

Come è possibile risolvere i problemi di distribuzione FTP?How can I troubleshoot FTP deployment?

Il primo passo per la risoluzione dei problemi di distribuzione FTP consiste nell'isolare un problema di distribuzione da un problema di runtime dell'applicazione.The first step for troubleshooting FTP deployment is isolating a deployment issue from a runtime application issue.

Un problema di distribuzione comporta in genere che non venga distribuito alcun file o che vengano distribuiti file non corretti all'app.A deployment issue typically results in no files or wrong files deployed to your app. È possibile risolverlo analizzando la distribuzione FTP o selezionando un percorso di distribuzione alternativo (ad esempio il controllo del codice sorgente).You can troubleshoot by investigating your FTP deployment or selecting an alternate deployment path (such as source control).

Un problema di runtime dell'applicazione determina in genere la distribuzione del set corretto di file all'app, ma un comportamento dell'app non corretto.A runtime application issue typically results in the right set of files deployed to your app but incorrect app behavior. È possibile risolverlo esaminando il comportamento di runtime del codice e analizzando i percorsi di errore specifici.You can troubleshoot by focusing on code behavior at runtime and investigating specific failure paths.

Per determinare se un problema è di distribuzione o di runtime, vedere Deployment vs. runtime issues (Problemi di distribuzione e di runtime).To determine a deployment or runtime issue, see Deployment vs. runtime issues.

Non sono in grado di eseguire il protocollo FTP e di pubblicare il codice.I'm not able to FTP and publish my code. Come è possibile risolvere il problema?How can I resolve the issue?

Verificare di avere immesso il nome host e le credenziali corretti.Check that you've entered the correct hostname and credentials. Verificare anche che le porte FTP seguenti nel computer non siano bloccate da un firewall:Check also that the following FTP ports on your machine are not blocked by a firewall:

  • Porta di connessione di controllo FTP: 21FTP control connection port: 21
  • Porta di connessione dati FTP: 989, 10001-10300FTP data connection port: 989, 10001-10300

Come è possibile connettersi a FTP nel Servizio app di Azure tramite la modalità passiva?How can I connect to FTP in Azure App Service via passive mode?

Servizio app di Azure supporta la connessione tramite la modalità attiva e passiva.Azure App Service supports connecting via both Active and Passive mode. La modalità passiva è preferibile perché le macchine di distribuzione sono in genere protette da un firewall (nel sistema operativo o nell'ambito di una rete domestica o aziendale).Passive mode is preferred because your deployment machines are usually behind a firewall (in the operating system or as part of a home or business network). Vedere un'esempio della documentazione WinSCP.See an example from the WinSCP documentation.

Passaggi successiviNext steps

Per scenari di distribuzione più avanzati, provare a eseguire la distribuzione in Azure con Git.For more advanced deployment scenarios, try deploying to Azure with Git. La distribuzione basata su Git in Azure abilita il controllo della versione, il ripristino del pacchetto, MSBuild e altro ancora.Git-based deployment to Azure enables version control, package restore, MSBuild, and more.

Altre risorseMore resources