Condividi tramite


Abilitare una connessione Desktop remoto per un ruolo in Servizi cloud di Azure (versione classica) con Visual Studio

Importante

Servizi cloud (versione classica) è ora deprecato per tutti i clienti a partire dal 1° settembre 2024. Eventuali distribuzioni esistenti in esecuzione saranno arrestate e chiuse da Microsoft e i dati andranno persi in modo permanente a partire da ottobre 2024. Le nuove distribuzioni devono usare il nuovo modello di distribuzione basato su Azure Resource Manager Azure Servizi cloud (supporto esteso).

Desktop remoto consente di accedere al desktop di un ruolo in esecuzione in Azure usando il protocollo Remote Desktop Protocol (RDP). È possibile usare una connessione Desktop remoto per risolvere e diagnosticare i problemi dell'applicazione mentre è in esecuzione.

La pubblicazione guidata fornita da Visual Studio per i servizi cloud include un'opzione per abilitare Desktop remoto durante il processo di pubblicazione, usando le credenziali fornite dall'utente. L'uso di questa opzione è indicato quando si usa Visual Studio 2017 versione 15.4 e precedenti.

Con Visual Studio 2017 versione 15.5 e successive, tuttavia, si consiglia di evitare di abilitare Desktop remoto tramite la pubblicazione guidata, a meno che non si stia lavorando come sviluppatore singolo. Per qualsiasi situazione in cui più sviluppatori aprono il progetto, occorre invece abilitare Desktop remoto tramite il portale di Azure, tramite PowerShell o da una pipeline di versione in un flusso di lavoro di distribuzione continua. Questa indicazione è dovuta a una modifica nel modo in cui Visual Studio comunica con Desktop remoto nella macchina virtuale (VM) del servizio cloud, come illustrato in questo articolo.

Configurare Desktop remoto tramite Visual Studio 2017 versione 15.4 e precedenti

Quando si usa Visual Studio 2017 versione 15.4 e precedenti, è possibile usare l'opzione Abilita Desktop remoto per tutti i ruoli nella pubblicazione guidata. È comunque possibile usare la procedura guidata con Visual Studio 2017 versione 15.5 e successive, ma senza usare l'opzione Desktop remoto.

  1. In Visual Studio avviare la pubblicazione guidata facendo clic con il pulsante destro del mouse sul progetto di servizio cloud in Esplora soluzioni e scegliendo Pubblica.

  2. Accedere alla sottoscrizione di Azure se necessario e selezionare Avanti.

  3. Nella pagina Settings (Impostazioni) selezionare Abilita Desktop remoto per tutti i ruoli e quindi selezionare il collegamento Settings (Impostazioni) per aprire la finestra di dialogo Configurazione Desktop remoto.

  4. Nella parte inferiore della finestra di dialogo selezionare Altre opzioni. Verrà visualizzato un elenco a discesa che consente di creare o scegliere un certificato in modo che sia possibile crittografare le informazioni sulle credenziali per la connessione tramite Desktop remoto.

    Nota

    I certificati necessari per una connessione Desktop remoto sono diversi da quelli usati per altre operazioni di Azure. Il certificato di accesso remoto deve avere una chiave privata.

  5. Selezionare un certificato dall'elenco o scegliere <Create > (Crea). Se si crea un nuovo certificato, specificare un nome descrittivo per il nuovo certificato quando viene richiesto e selezionare OK. Il nuovo certificato verrà visualizzato nell'elenco a discesa.

  6. Specificare un nome utente e una password. Non è possibile usare un account esistente. Non usare "Administrator" come nome utente per il nuovo account.

  7. Scegliere una data in cui l'account scadrà. Un account scaduto blocca automaticamente ulteriori connessioni Desktop remoto.

  8. Dopo aver fornito tutte le informazioni necessarie, selezionare OK. Visual Studio aggiungerà le impostazioni di Desktop remoto ai file .cscfg e .csdef del progetto, inclusa la password crittografata usando il certificato scelto.

  9. Completare tutti i passaggi rimanenti usando il pulsante Avanti, quindi selezionare Pubblica quando si è pronti a pubblicare il servizio cloud. Se non si è pronti a pubblicare, selezionare Cancel (Annulla) e rispondere quando viene richiesto di salvare le modifiche. È possibile pubblicare il servizio cloud in un secondo momento con queste impostazioni.

Configurare Desktop remoto quando si usa Visual Studio 2017 versione 15.5 e successive

Con Visual Studio 2017 versione 15.5 e successive, è comunque possibile usare la pubblicazione guidata con un progetto di servizio cloud. È anche possibile usare l'opzione Abilita Desktop remoto per tutti i ruoli se si lavora solo come sviluppatore singolo.

Se si lavora nell'ambito di un team, è invece necessario abilitare Desktop remoto nel servizio cloud di Azure usando il portale di Azure o PowerShell.

Questa indicazione è dovuta a una modifica nel modo in cui Visual Studio 2017 versione 15.5 e successive comunica con la macchina virtuale del servizio cloud. Quando si abilita Desktop remoto tramite la pubblicazione guidata, le versioni precedenti di Visual Studio comunicano con la macchina virtuale tramite il cosiddetto "plug-in RDP". Visual Studio 2017 versione 15.5 e successive comunica usando invece l'"estensione RDP", più sicura e flessibile. Questa modifica si allinea inoltre al fatto che anche il portale di Azure e i metodi di PowerShell per abilitare Desktop remoto usano l'estensione RDP.

Quando Visual Studio comunica con l'estensione RDP, trasmette una password di testo normale tramite Transport Layer Security (TLS). I file di configurazione del progetto, tuttavia, memorizzano solo una password crittografata, che può essere decrittografata in testo normale solo con il certificato locale usato originariamente per crittografarla.

Se ogni volta si distribuisce il progetto di servizio cloud dallo stesso computer di sviluppo, il certificato locale sarà disponibile. In questo caso si potrà comunque usare l'opzione Abilita Desktop remoto per tutti i ruoli nella pubblicazione guidata.

Se tuttavia l'utente o altri sviluppatori intendono distribuire il progetto di servizio cloud da computer diversi, tali computer non avranno il certificato necessario per decrittografare la password. Di conseguenza verrà visualizzato il messaggio di errore seguente:

Applying remote desktop protocol extension.
Certificate with thumbprint [thumbprint] doesn't exist.

È possibile modificare la password ogni volta che si distribuisce il servizio cloud, ma si tratta di un'operazione poco pratica per tutti gli utenti che devono accedere a Desktop remoto.

Se si condivide il progetto con un team, è quindi consigliabile deselezionare l'opzione nella pubblicazione guidata e abilitare invece Desktop remoto direttamente tramite il portale di Azure oppure tramite PowerShell.

Distribuzione da un server di compilazione con Visual Studio 2017 versione 15.5 e successive

È possibile distribuire un progetto di servizio cloud da un server di compilazione (ad esempio, con Azure DevOps Services) dove Visual Studio 2017 versione 15.5 o successive è installato nell'agente di compilazione. In questo modo la distribuzione avviene dallo stesso computer in cui è disponibile il certificato di crittografia.

Per usare l'estensione RDP da Azure DevOps Services, includere i dettagli seguenti nella pipeline di compilazione:

  1. Includere /p:ForceRDPExtensionOverPlugin=true negli argomenti di MSBuild per assicurarsi che la distribuzione funzioni con l'estensione RDP anziché con il plug-in RDP. Ad esempio:

    msbuild AzureCloudService5.ccproj /t:Publish /p:TargetProfile=Cloud /p:DebugType=None
        /p:SkipInvalidConfigurations=true /p:ForceRDPExtensionOverPlugin=true
    
  2. Dopo le istruzioni di compilazione, aggiungere il passaggio Distribuzione del servizio cloud di Azure e impostarne le proprietà.

  3. Dopo il passaggio di distribuzione, aggiungere un passaggio Azure PowerShell, impostare la proprietà Nome visualizzato su "Distribuzione Azure: abilitare l'estensione RDP" o un altro nome appropriato e selezionare la sottoscrizione Azure appropriata.

  4. Impostare Tipo di script su "Inline" e incollare il codice seguente nel campo Script inline. È anche possibile creare un file .ps1 nel progetto con questo script, impostare Tipo di script su "Percorso del file di script" e impostare Percorso script in modo da puntare al file.

    Param(
        [Parameter(Mandatory=$True)]
        [string]$username,
    
        [Parameter(Mandatory=$True)]
        [string]$password,
    
        [Parameter(Mandatory=$True)]
        [string]$serviceName,
    
        [Datetime]$expiry = ($(Get-Date).AddYears(1))
    )
    
    Write-Host "Service Name: $serviceName"
    Write-Host "User Name: $username"
    Write-Host "Expiry: $expiry"
    
    $securepassword = ConvertTo-SecureString -String $password -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential $username,$securepassword
    
    # Try to remote existing RDP Extensions
    try
    {
        $existingRDPExtension = Get-AzureServiceRemoteDesktopExtension -ServiceName $servicename
        if ($existingRDPExtension -ne $null)
        {
            Remove-AzureServiceRemoteDesktopExtension -ServiceName $servicename -UninstallConfiguration
        }
    }
    catch
    {
    }
    
    Set-AzureServiceRemoteDesktopExtension -ServiceName $servicename -Credential $credential -Expiration $expiry -Verbose
    

Connettersi a un ruolo di Azure tramite Desktop remoto

Dopo aver pubblicato il servizio cloud in Azure e avere abilitato Desktop remoto, è possibile usare Esplora server di Visual Studio per accedere alla macchina virtuale del servizio cloud:

  1. In Esplora server espandere il nodo Azure e quindi espandere il nodo di un servizio cloud e uno dei relativi ruoli per visualizzare un elenco di istanze.

  2. Fare clic con il pulsante destro del mouse su un nodo dell'istanza e scegliere Connessione tramite desktop remoto.

  3. Immettere il nome utente e la password creati in precedenza. È stato eseguito l'accesso alla sessione remota.

Passaggi successivi