Pubblicazione di un servizio cloud con Visual StudioPublishing a cloud service using Visual Studio

Visual Studio può pubblicare un'applicazione direttamente in Azure, con il supporto per entrambi gli ambienti di staging e produzione di un servizio cloud.Visual Studio can publish an application directly to Azure, with support for both Staging and Production environments of a cloud service. Al momento della pubblicazione, si selezionano l'ambiente di distribuzione e un account di archiviazione da usare temporaneamente per il pacchetto di distribuzione.WHen publishing, you select the deployment environment and a storage account that's used temporarily for the deployment package.

Durante lo sviluppo e il test di un'applicazione Azure, è possibile utilizzare Distribuzione Web per pubblicare le modifiche in modo incrementale per i ruoli web.When you are developing and testing an Azure application, you can use Web Deploy to publish changes incrementally for your web roles. Dopo aver pubblicato l'applicazione in un ambiente di distribuzione, Distribuzione Web consente di distribuire le modifiche apportate direttamente alla macchina virtuale che esegue il ruolo web.After you publish your application to a deployment environment, Web Deploy lets you deploy changes directly to the virtual machine that is running the web role. Non è necessario assemblare e pubblicare l'intera applicazione Azure ogni volta che si desidera aggiornare il ruolo web per testare le modifiche.You do not have to package and publish your entire Azure application each time you want to update your web role to test out the changes. Con questo approccio, è possibile avere le modifiche del ruolo Web disponibili nel cloud per il test senza dover attendere la pubblicazione dell'applicazione in un ambiente di distribuzione.With this approach, you can have your web role changes available in the cloud for testing without waiting to have your application published to a deployment environment.

Utilizzare le procedure seguenti per pubblicare l'applicazione Azure e per aggiornare un ruolo web tramite Distribuzione Web:Use the following procedures to publish your Azure application and to update a web role by using Web Deploy:

  • Pubblicare o assemblare un'applicazione Azure da Visual StudioPublish or Package an Azure application from Visual Studio
  • Aggiornare un ruolo web come parte del ciclo di sviluppo e testUpdate a web role as part of the development and testing cycle

Pubblicare o assemblare un'applicazione Azure da Visual StudioPublish or package an Azure application from Visual Studio

Quando si pubblica l'applicazione Azure, è possibile eseguire una delle seguenti operazioni:When you publish your Azure application, you can do one of the following tasks:

  • Creare un pacchetto del servizio: è possibile usare questo pacchetto e il file di configurazione del servizio per pubblicare l'applicazione in un ambiente di distribuzione dal portale di Azure.Create a service package: You can use this package and the service configuration file to publish your application to a deployment environment from the Azure portal.
  • Pubblicare il progetto Azure da Visual Studio: per pubblicare l'applicazione direttamente in Azure, si utilizza la Pubblicazione guidata.Publish your Azure project from Visual Studio: To publish your application directly to Azure, you use the Publish Wizard. Per altre informazioni, vedere Procedura guidata Pubblica l'applicazione Azure.For information, see Publish Azure Application Wizard.

Per creare un pacchetto del servizio da Visual StudioTo create a service package from Visual Studio

  1. Quando si è pronti per pubblicare l'applicazione, aprire Esplora soluzioni, aprire il menu di scelta rapida per il progetto Azure contenente i ruoli e scegliere Pubblica.When you are ready to publish your application, open Solution Explorer, open the shortcut menu for the Azure project that contains your roles, and choose Publish.
  2. Per creare un pacchetto del servizio, attenersi alla procedura seguente:To create a service package only, follow these steps:

    a.a. Sul menu di scelta rapida per il progetto Azure, scegliere Pacchetto.On the shortcut menu for the Azure project, choose Package. b.b. Nella finestra di dialogo Crea pacchetto dell’applicazione Azure scegliere la configurazione del servizio per il quale si desidera creare un pacchetto e quindi scegliere la configurazione di compilazione.In the Package Azure Application dialog box, choose the service configuration for which you want to create a package, and then choose the build configuration. c.c. (facoltativo) Per attivare Desktop remoto per il servizio cloud dopo la pubblicazione, selezionare la casella di controllo Abilita Desktop remoto per tutti i ruoli, quindi selezionare Impostazioni per configurare Desktop remoto.(optional) To turn on Remote Desktop for the cloud service after you publish it, select the Enable Remote Desktop for all Roles check box, and then select Settings to configure Remote Desktop. Se si desidera eseguire il debug del servizio cloud dopo la pubblicazione, attivare il debug remoto selezionando Abilita Debugger remoto per tutti i ruoli.If you want to debug your cloud service after you publish it, turn on remote debugging by selecting Enable Remote Debugger for all Roles.

    Per altre informazioni, vedere Utilizzo di Desktop remoto con i ruoli di Azure.For more information, see Using Remote Desktop with Azure Roles. d.d. Per creare il pacchetto, scegliere il collegamento Pacchetto .To create the package, choose the Package link.

    Esplora file mostra il percorso del file del pacchetto appena creato.File Explorer shows the file location of the newly created package. È possibile copiare questo percorso per usarlo dal portale di Azure.You can copy this location so that you can use it from the Azure portal. e.e. Per pubblicare il pacchetto in un ambiente di distribuzione, è necessario usare questo percorso del pacchetto quando si crea un servizio cloud e si distribuisce il pacchetto in un ambiente con il portale di Azure.To publish this package to a deployment environment, you must use this location as the Package location when you create a cloud service and deploy this package to an environment with the Azure portal.

  3. (Facoltativo) Per annullare il processo di distribuzione, nel menu di scelta rapida per la voce nel registro attività, scegliere Annulla e Rimuovi.(Optional) To cancel the deployment process, on the shortcut menu for the line item in the activity log, choose Cancel and remove. Questo comando arresta il processo di distribuzione ed elimina l'ambiente di distribuzione da Azure.This command stops the deployment process and deletes the deployment environment from Azure. Per rimuovere l'ambiente dopo la distribuzione, usare il portale di Azure.To remove the environment after deployment, use the Azure portal.

  4. (Facoltativo) Dopo l'avvio delle istanze del ruolo, Visual Studio mostrerà automaticamente l'ambiente di distribuzione nel nodo Servizi cloud in Esplora server.(Optional) After your role instances have started, Visual Studio automatically shows the deployment environment in the Cloud Services node in Server Explorer. Da qui è possibile visualizzare lo stato delle singole istanze del ruolo.From here, you can see the status of the individual role instances. Vedere Gestione delle risorse di Azure con Cloud Explorer. La figura seguente mostra le istanze del ruolo mentre si trovano ancora nello stato di inizializzazione:See Managing Azure resources with Cloud Explorer.The following illustration shows the role instances while they are still in the Initializing state:

    VST_DeployComputeNode

Aggiornare un ruolo web come parte del ciclo di sviluppo e testUpdate a web role as part of the development and testing cycle

Se l'infrastruttura back-end dell'app è stabile, ma i ruoli Web richiedono aggiornamenti più frequenti, è possibile usare Distribuzione Web per aggiornare un solo ruolo Web nel progetto.If your app’s back end infrastructure is stable, but the web roles need more frequent updating, you can use Web Deploy to update only a web role in your project. Distribuzione Web è utile quando si vuole evitare di creare e distribuire di nuovo i ruoli di lavoro back-end o se si hanno più ruoli Web e si vuole aggiornarne solo uno.Web Deploy is handy when you don’t want to rebuild and redeploy the back end worker roles, or if you have multiple web roles and you want to update only one of the web roles.

RequisitiRequirements

Di seguito sono riportati i requisiti per utilizzare Distribuzione Web per aggiornare il ruolo web:Here are the requirements to use Web Deploy to update your web role:

  • Solo per scopi di sviluppo e test: Le modifiche vengono apportate direttamente alla macchina virtuale in cui è in esecuzione il ruolo web.For development and testing purposes only: The changes are made directly to the virtual machine where the web role is running. Se è necessario riciclare questa macchina virtuale, le modifiche andranno perse perché il pacchetto originale pubblicato viene utilizzato per ricreare la macchina virtuale per il ruolo.If this virtual machine has to be recycled, the changes are lost because the original package that you published is used to recreate the virtual machine for the role. Pubblicare nuovamente l'applicazione per ottenere le modifiche più recenti per il ruolo Web.Republish your application to get the latest changes for the web role.
  • Possono essere aggiornati solo i ruoli web: I ruoli di lavoro non possono essere aggiornati.Only web roles can be updated: Worker roles can’t be updated. Inoltre, non è possibile aggiornare RoleEntryPoint in web role.cs.In addition, you can’t update the RoleEntryPoint in web role.cs.
  • Può supportare solo una singola istanza di un ruolo web: Non è possibile avere più istanze di qualsiasi ruolo web nell'ambiente di distribuzione.Can only support a single instance of a web role: You can’t have multiple instances of any web role in your deployment environment. Tuttavia, sono supportati più ruoli web con una sola istanza.However, multiple web roles each with only one instance are supported.
  • Abilitare le connessioni Desktop remoto: questa operazione è necessaria per consentire a Distribuzione Web di usare il nome utente e la password per connettersi alla macchina virtuale e distribuire le modifiche al server che esegue IIS (Internet Information Services).Enable remote desktop connections: This requirement allows Web Deploy to use the user and password to connect to the virtual machine to deploy the changes to the server that’s running Internet Information Services (IIS). Inoltre, potrebbe essere necessario connettersi alla macchina virtuale per aggiungere un certificato attendibile a IIS su questa macchina virtuale.In addition, you might need to connect to the virtual machine to add a trusted certificate to IIS on this virtual machine. Con questo certificato si ha la certezza che la connessione remota per IIS usata da Distribuzione Web sia protetta.(This certificate ensures that the remote connection for IIS that is used by Web Deploy is secure.)

La procedura seguente presuppone che si stia utilizzando la procedura guidata Pubblica applicazione di Azure .The following procedure assumes that you are using the Publish Azure Application wizard.

Abilitare Distribuzione Web quando si pubblica l'applicazioneEnable Web Deploy when you publish your application

  1. Per abilitare la casella di controllo Abilita Distribuzione Web per tutti i ruoli Web, è innanzitutto necessario configurare le connessioni desktop remoto.To enable the Enable Web Deploy for all web roles check box, you must first configure remote desktop connections. Selezionare Abilita Desktop remoto per tutti i ruoli e quindi specificare le credenziali usate per connettersi in remoto nella casella Configurazione Desktop remoto visualizzata.Select Enable Remote Desktop for all roles and then supply the credentials that is used to connect remotely in the Remote Desktop Configuration box that appears. Vedere Utilizzo di Desktop remoto con i ruoli Azure.See Using Remote Desktop with Azure Roles.
  2. Per abilitare Distribuzione Web per tutti i ruoli web nell'applicazione, selezionare Abilita Distribuzione Web per tutti i ruoli web.To enable Web Deploy for all the web roles in your application, select Enable Web Deploy for all web roles.

    Viene visualizzato un triangolo giallo.A yellow warning triangle appears. Distribuzione Web utilizza un certificato autofirmato non attendibile per impostazione predefinita, che non è consigliato per il caricamento dei dati riservati.Web Deploy uses an untrusted, self-signed certificate by default, which is not recommended for uploading sensitive data. Se è necessario proteggere questo processo per i dati riservati, è possibile aggiungere un certificato SSL da usare per le connessioni di Distribuzione Web.If you need to secure this process for sensitive data, you can add an SSL certificate to be used for Web Deploy connections. Questo certificato deve essere un certificato attendibile.This certificate needs to be a trusted certificate. Per altre informazioni, vedere Proteggere Distribuzione Web.For more information, see Make web deploy secure.

  3. Scegliere Avanti per mostrare la schermata Riepilogo e quindi scegliere Pubblica per distribuire il servizio cloud.Choose Next to show the Summary screen, and then choose Publish to deploy the cloud service.

    Il servizio cloud viene pubblicato.The cloud service is published. La macchina virtuale creata dispone di connessioni remote abilitate per IIS in modo che Distribuzione Web possa essere utilizzato per aggiornare i ruoli web senza ripubblicarli.The virtual machine that is created has remote connections enabled for IIS so that Web Deploy can be used to update your web roles without republishing them.

    Nota

    Se per un ruolo Web sono configurate più istanze, viene visualizzato un messaggio di avviso per segnalare che ogni ruolo Web è limitato a una sola istanza nel pacchetto creato per pubblicare l'applicazione.If you have more than one instance configured for a web role, a warning message appears, stating that each web role is limited to one instance only in the package that’s created to publish your application. Selezionare OK per continuare.Select OK to continue. Come indicato nella sezione Requisiti, è possibile disporre di più di un ruolo web ma di solo un'istanza di ogni ruolo.As stated in the Requirements section, you can have more than one web role but only one instance of each role.

Aggiornare il ruolo Web tramite Distribuzione WebUpdate your web role by using Web Deploy

  1. Per utilizzare Distribuzione Web, apportare modifiche al codice del progetto per uno dei ruoli web in Visual Studio che si desidera pubblicare, quindi fare doppio clic su questo nodo del progetto nella soluzione e scegliere Pubblica.To use Web Deploy, make code changes to the project for any of your web roles in Visual Studio that you want to publish, and then right-click this project node in your solution and point to Publish. La finestra di dialogo Pubblica sito Web viene visualizzata.The Publish Web dialog box appears.
  2. (Facoltativo) Se è stato aggiunto un certificato SSL attendibile da utilizzare per le connessioni remote per IIS, è possibile deselezionare la casella di controllo Consenti certificato non attendibile .(Optional) If you added a trusted SSL certificate to use for remote connections for IIS, you can clear the Allow untrusted certificate check box. Per informazioni su come aggiungere un certificato per proteggere Distribuzione Web, vedere la sezione Proteggere Distribuzione Web più avanti in questo articolo.For information about how to add a certificate to make Web Deploy secure, see the section To Make Web Deploy Secure later in this article.
  3. Per utilizzare Distribuzione Web, il meccanismo di pubblicazione richiede il nome utente e la password impostati per la connessione desktop remoto alla prima pubblicazione del pacchetto.To use Web Deploy, the publish mechanism needs the user name and password that you set up for your remote desktop connection when you first published the package.

    a.a. In Nome utente, immettere il nome utente.In User name, enter the user name. b.b. In Password, immettere la password.In Password, enter the password. c.c. (Facoltativo) Se si desidera salvare la password in questo profilo, scegliere Salva password.(Optional) If you want to save this password in this profile, choose Save password.

  4. Per pubblicare le modifiche al proprio ruolo web, scegliere Pubblica.To publish the changes to your web role, choose Publish.

    La riga di stato mostra Pubblicazione avviata.The status line displays Publish started. Quando la pubblicazione è stata completata, lo stato mostra Pubblicazione completata .When the publishing has completed, Publish succeeded appears. Le modifiche a questo punto sono state distribuite al ruolo web nella macchina virtuale.The changes have now been deployed to the web role on your virtual machine. Ora è possibile avviare l'applicazione Azure nell'ambiente di Azure per verificare le modifiche apportate.Now you can start your Azure application in the Azure environment to test your changes.

Proteggere Distribuzione WebMake web deploy secure

  1. Distribuzione Web utilizza un certificato autofirmato non attendibile per impostazione predefinita, che non è consigliato per il caricamento dei dati riservati.Web Deploy uses an untrusted, self-signed certificate by default, which is not recommended for uploading sensitive data. Se è necessario proteggere questo processo per i dati riservati, è possibile aggiungere un certificato SSL da usare per le connessioni di Distribuzione Web.If you need to secure this process for sensitive data, you can add an SSL certificate to be used for Web Deploy connections. Questo certificato deve essere un certificato attendibile, ottenuto da un'autorità di certificazione (CA).This certificate needs to be a trusted certificate, which you obtain from a certificate authority (CA).

    Per proteggere Distribuzione Web per ogni macchina virtuale relativa a ciascuno dei ruoli Web, è necessario caricare il certificato attendibile che si vuole usare per Distribuzione Web nel portale di Azure.To make Web Deploy secure for each virtual machine for each of your web roles, you must upload the trusted certificate that you want to use for web deploy to the Azure portal. In questo modo si ha la certezza che il certificato venga aggiunto alla macchina virtuale creata per il ruolo Web quando si pubblica l'applicazione.This certificate makes sure that the certificate is added to the virtual machine that is created for the web role when you publish your application.

  2. Per aggiungere un certificato SSL attendibile a IIS da utilizzare per le connessioni remote, attenersi alla seguente procedura:To add a trusted SSL certificate to IIS to use for remote connections, follow these steps:

    a.a. Per connettersi alla macchina virtuale che esegue il ruolo Web, selezionare l'istanza del ruolo Web in Cloud Explorer o Esplora server, quindi scegliere il comando Connessione tramite desktop remoto.To connect to the virtual machine that is running the web role, select the instance of the web role in Cloud Explorer or Server Explorer, and then choose the Connect using Remote Desktop command. Per la procedura dettagliata su come connettersi alla macchina virtuale, vedere Utilizzo di Desktop remoto con i ruoli di Azure.For detailed steps about how to connect to the virtual machine, see Using Remote Desktop with Azure Roles. Il browser chiederà di scaricare un file con estensione .rdp.Your browser prompts you to download an .rdp file. b.b. Per aggiungere un certificato SSL, aprire il servizio di gestione in Gestione IIS.To add an SSL certificate, open the management service in IIS Manager. In Gestione IIS abilitare SSL aprendo il collegamento Binding nel riquadro Azione.In IIS Manager, enable SSL by opening the Bindings link in the Action pane. La finestra di dialogo Aggiungi binding del sito verrà visualizzata.The Add Site Binding dialog box appears. Fare clic su Aggiungi e quindi selezionare HTTPS dall'elenco a discesa Tipo.Choose Add, and then choose HTTPS in the Type drop-down list. Nell'elenco Certificato SSL selezionare il certificato SSL firmato da una CA che è stato caricato nel portale di Azure.In the SSL certificate list, choose the SSL certificate that you had signed by a CA and that you uploaded to the Azure portal. Per altre informazioni, vedere Configurare le impostazioni di connessione per il servizio di gestione.For more information, see Configure Connection Settings for the Management Service.

    Nota

    Se si aggiunge un certificato SSL attendibile, il triangolo giallo di avviso non viene visualizzato nella Pubblicazione guidata.If you add a trusted SSL certificate, the yellow warning triangle no longer appears in the Publish Wizard.

Includere file nel pacchetto del servizioInclude files in the service package

Potrebbe essere necessario includere file specifici nel pacchetto di servizio in modo che siano disponibili nella macchina virtuale creata per un ruolo.You might need to include specific files in your service package so that they are available on the virtual machine that is created for a role. Può ad esempio essere opportuno aggiungere un file con estensione .exe o .msi che viene usato da uno script di avvio per il pacchetto del servizio.For example, you might want to add an .exe or an .msi file that is used by a startup script to your service package. Oppure potrebbe essere necessario aggiungere un assembly richiesto da un progetto di ruolo web o ruolo di lavoro.Or you might need to add an assembly that a web role or worker role project requires. Per includere file, è necessario aggiungerli alla soluzione relativa all'applicazione Azure.To include files, they must be added to the solution for your Azure application.

  1. Per aggiungere un assembly a un pacchetto del servizio, utilizzare la procedura seguente:To add an assembly to a service package, use the following steps:

    a.a. In Esplora soluzioni aprire il nodo del progetto in cui non è presente l'assembly di riferimento.In Solution Explorer, open the project node for the project that is missing the referenced assembly. b.b. Per aggiungere l'assembly al progetto, aprire il menu di scelta rapida per la cartella Riferimenti e quindi scegliere Aggiungi riferimento.To add the assembly to the project, open the shortcut menu for the References folder and then choose Add Reference. Viene visualizzata la finestra di dialogo Aggiungi riferimento.The Add Reference dialog appears. c.c. Scegliere il riferimento che si vuole aggiungere e quindi fare clic su OK.Choose the reference that you want to add and then choose OK. Il riferimento viene aggiunto all'elenco sotto la cartella Riferimenti .The reference is added to the list under the References folder. d.d. Aprire il menu di scelta rapida per l'assembly aggiunto e scegliere Proprietà.Open the shortcut menu for the assembly that you added and choose Properties. La finestra Proprietà verrà visualizzata.The Properties window appears.

    Per includere questo assembly nel pacchetto del servizio, nell'elenco Copia locale scegliere True.To include this assembly in the service package, in the Copy Local list choose True.

  2. In Esplora soluzione aprire il nodo del progetto per il progetto in cui manca l'assembly di riferimento.In Solution Explorer open the project node for the project that is missing the referenced assembly.
  3. Per aggiungere l'assembly al progetto, aprire il menu di scelta rapida per la cartella Riferimenti e quindi scegliere Aggiungi riferimento.To add the assembly to the project, open the shortcut menu for the References folder and then choose Add Reference. Viene visualizzata la finestra di dialogo Aggiungi riferimento .The Add Reference dialog appears.
  4. Scegliere il riferimento che si desidera aggiungere e quindi scegliere il pulsante OK .Choose the reference that you want to add and then choose the OK button.

    Il riferimento viene aggiunto all'elenco sotto la cartella Riferimenti .The reference is added to the list under the References folder.

  5. Aprire il menu di scelta rapida per l'assembly aggiunto e scegliere Proprietà.Open the shortcut menu for the assembly that you added and choose Properties. La finestra Proprietà verrà visualizzata.The Properties window appears.
  6. Per includere questo assembly nel pacchetto del servizio, nell'elenco Copia locale scegliere True.To include this assembly in the service package, in the Copy Local list, choose True.
  7. Per includere file nel pacchetto del servizio che sono stati aggiunti al progetto del ruolo web, aprire il menu di scelta rapida per il file e quindi scegliere Proprietà.To include files in the service package that have been added to your web role project, open the shortcut menu for the file, and then choose Properties. Dalla finestra Proprietà scegliere Contenuto nella casella di riepilogo Azione di compilazione.From the Properties window, choose Content from the Build Action list box.
  8. Per includere file nel pacchetto del servizio che sono stati aggiunti al progetto del ruolo di lavoro, aprire il menu di scelta rapida per il file e quindi scegliere proprietà.To include files in the service package that have been added to your worker role project, open the shortcut menu for the file, and then choose Properties. Dalla finestra Proprietà scegliere Copia se più recente nella casella di riepilogo Copia nella directory di output.From the Properties window, choose Copy if newer from the Copy to output directory list box.

Passaggi successiviNext steps

Per altre informazioni sulla pubblicazione in Azure da Visual Studio, vedere Procedura guidata Pubblica l'applicazione Azure.To learn more about publishing to Azure from Visual Studio, see Publish Azure Application Wizard.