Abilitare il debug remoto con la distribuzione continua per la pubblicazione in AzureEnable remote debugging when using continuous delivery to publish to Azure

Per abilitare il debug remoto in Azure, per i servizi cloud o le macchine virtuali, quando si usa la distribuzione continua per la pubblicazione in Azure, eseguire la procedura seguente.You can enable remote debugging in Azure, for cloud services or virtual machines, when you use continuous delivery to publish to Azure by following these steps.

Abilitazione del debug remoto per i servizi cloudEnabling remote debugging for cloud services

  1. Nell'agente di compilazione configurare l'ambiente iniziale per Azure come descritto in Compilazione da riga di comando per Azure.On the build agent, set up the initial environment for Azure as outlined in Command-Line Build for Azure.
  2. Poiché il pacchetto richiede l'installazione del runtime di debug remoto (msvsmon.exe), installare Remote Tools per Visual Studio.Because the remote debug runtime (msvsmon.exe) is required for the package, install the Remote Tools for Visual Studio.

    In alternativa, copiare i binari di debug remoto da un sistema in cui è installato Visual Studio.As an alternative, you can copy the remote debug binaries from a system that has Visual Studio installed.

  3. Creare un certificato come descritto in Panoramica dei certificati per servizi cloud di Azure.Create a certificate as outlined in Certificates Overview for Azure Cloud Services. Mantenere il file con estensione pfx e l'identificazione personale del certificato RDP e caricare il certificato nel servizio cloud di destinazione.Keep the .pfx and RDP certificate thumbprint and upload the certificate to the target cloud service.

  4. Nella riga di comando MSBuild usare le opzioni seguenti per eseguire la compilazione e creare un pacchetto con il debug remoto abilitato.Use the following options in the MSBuild command line to build and package with remote debug enabled. Sostituire i percorsi effettivi ai file di progetto e di sistema per gli elementi racchiusi tra parentesi angolari.(Substitute actual paths to your system and project files for the angle-bracketed items.)

    msbuild /TARGET:PUBLISH /PROPERTY:Configuration=Debug;EnableRemoteDebugger=true;VSX64RemoteDebuggerPath="<remote tools path>";RemoteDebuggerConnectorCertificateThumbprint="<thumbprint of the certificate added to the cloud service>";RemoteDebuggerConnectorVersion="2.7" "<path to your VS solution file>"
    

    VSX64RemoteDebuggerPath è il percorso della cartella contenente msvsmon.exe in Remote Tools per Visual Studio.VSX64RemoteDebuggerPath is the path to the folder containing msvsmon.exe in the Remote Tools for Visual Studio. RemoteDebuggerConnectorVersion è la versione di Azure SDK nel servizio cloud.RemoteDebuggerConnectorVersion is the Azure SDK version in your cloud service. Deve corrispondere anche alla versione installata con Visual Studio.It should also match the version installed with Visual Studio.

  5. Eseguire la pubblicazione nel servizio cloud di destinazione usando il pacchetto e il file di configurazione (CSCFG) generato nel passaggio precedente.Publish to the target cloud service by using the package and .cscfg file generated in the previous step.

  6. Importare il certificato (file PFX) nel computer in cui è installato Visual Studio con Azure SDK per .NET.Import the certificate (.pfx file) to the machine that has Visual Studio with Azure SDK for .NET installed. Assicurarsi di eseguire l'importazione nell'archivio certificati CurrentUser\My , in caso contrario il collegamento al debugger di Visual Studio avrà esito negativo.Make sure to import to the CurrentUser\My certificate store, otherwise attaching to the debugger in Visual Studio will fail.

Abilitazione del debug remoto per le macchine virtualiEnabling remote debugging for virtual machines

  1. Creare una macchina virtuale di Azure.Create an Azure virtual machine. Per informazioni, vedere l'articolo su come creare una macchina virtuale che esegue Windows Server oppure l'articolo su come Creare e gestire macchine virtuali di Azure in Visual Studio.See Create a Virtual Machine Running Windows Server or Create and Manage Azure Virtual Machines in Visual Studio.
  2. Nel portale di Azure] (http://go.microsoft.com/fwlink/p/?LinkID=269851) passare all'IDENTIFICAZIONE PERSONALE DEL CERTIFICATO RDP della macchina virtuale.On the Azure portal](http://go.microsoft.com/fwlink/p/?LinkID=269851), navigate to the virtual machine to the virtual machine’s RDP CERTIFICATE THUMBPRINT. Questo valore viene utilizzato per il valore ServerThumbprint nella configurazione dell'estensione.This value is used for the ServerThumbprint value in the extension configuration.
  3. Creare un certificato client come descritto in Panoramica sui certificati per i servizi cloud di Azure (conservare il file .pfx e l'identificazione personale del certificato RDP).Create a client certificate as outlined in Certificates Overview for Azure Cloud Services (keep the .pfx and RDP certificate thumbprint).
  4. Installare Azure Powershell (versione 0.7.4 o versione successiva) come descritto in Come installare e configurare Azure PowerShell.Install Azure Powershell (version 0.7.4 or later) as outlined in How to install and configure Azure PowerShell.
  5. Eseguire lo script seguente per abilitare l'estensione RemoteDebug.Run the following script to enable the RemoteDebug extension. Sostituire i percorsi e i dati personali con i dati personali dell'utente, ad esempio nome della sottoscrizione, nome del servizio e identificazione personale.Replace the paths and personal data with your own, such as your subscription name, service name, and thumbprint.

    Nota

    Questo script è configurato per Visual Studio 2015.This script is configured for Visual Studio 2015. Se si usa Visual Studio 2013 o Visual Studio 2017, modificare le assegnazioni $referenceName e $extensionName seguenti in RemoteDebugVS2013 o RemoteDebugVS2017.If you’re using Visual Studio 2013 or Visual Studio 2017, modify the $referenceName and $extensionName assignments below to RemoteDebugVS2013 or RemoteDebugVS2017.

    Add-AzureAccount
    
    Select-AzureSubscription "My Microsoft Subscription"
    
    $vm = Get-AzureVM -ServiceName "mytestvm1" -Name "mytestvm1"
    
    $endpoints = @(
                    ,@{Name="RDConnVS2013"; PublicPort=30400; PrivatePort=30398}
                    ,@{Name="RDFwdrVS2013"; PublicPort=31400; PrivatePort=31398}
                )
    
    foreach($endpoint in $endpoints)
    {
        Add-AzureEndpoint -VM $vm -Name $endpoint.Name -Protocol tcp -PublicPort $endpoint.PublicPort -LocalPort $endpoint.PrivatePort
    }
    
    $referenceName = "Microsoft.VisualStudio.WindowsAzure.RemoteDebug.RemoteDebugVS2015"
    $publisher = "Microsoft.VisualStudio.WindowsAzure.RemoteDebug"
    $extensionName = "RemoteDebugVS2015"
    $version = "1.*"
    $publicConfiguration = "<PublicConfig><Connector.Enabled>true</Connector.Enabled><ClientThumbprint>56D7D1B25B472268E332F7FC0C87286458BFB6B2</ClientThumbprint><ServerThumbprint>E7DCB00CB916C468CC3228261D6E4EE45C8ED3C6</ServerThumbprint><ConnectorPort>30398</ConnectorPort><ForwarderPort>31398</ForwarderPort></PublicConfig>"
    
    $vm | Set-AzureVMExtension -ReferenceName $referenceName -Publisher $publisher -ExtensionName $extensionName -Version $version -PublicConfiguration $publicConfiguration
    
    foreach($extension in $vm.VM.ResourceExtensionReferences)
    {
        if(($extension.ReferenceName -eq $referenceName) `
        -and ($extension.Publisher -eq $publisher) `
        -and ($extension.Name -eq $extensionName) `
        -and ($extension.Version -eq $version))
        {
            $extension.ResourceExtensionParameterValues[0].Key = 'config.txt'
            break
        }
    }
    
    $vm | Update-AzureVM
    
  6. Importare il certificato (file PFX) nel computer in cui è installato Visual Studio con Azure SDK per .NET.Import the certificate (.pfx) to the machine that has Visual Studio with Azure SDK for .NET installed.