Aktivera anslutning till fjärrskrivbord för en roll i Azure Cloud Services (klassisk) med hjälp av Visual Studio

Viktigt

Cloud Services (klassisk) är nu inaktuell för nya kunder och kommer att dras tillbaka den 31 augusti 2024 för alla kunder. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).

Med Fjärrskrivbord kan du komma åt skrivbordet för en roll som körs i Azure. Du kan använda en fjärrskrivbordsanslutning för att felsöka och diagnostisera problem med ditt program medan det körs.

Publiceringsguiden som Visual Studio tillhandahåller för molntjänster innehåller ett alternativ för att aktivera Fjärrskrivbord under publiceringsprocessen med hjälp av de autentiseringsuppgifter som du anger. Det här alternativet är lämpligt när du använder Visual Studio 2017 version 15.4 och tidigare.

Med Visual Studio 2017 version 15.5 och senare rekommenderar vi dock att du undviker att aktivera Fjärrskrivbord via publiceringsguiden om du inte bara arbetar som en enda utvecklare. I alla situationer där projektet kan öppnas av andra utvecklare aktiverar du i stället Fjärrskrivbord via Azure Portal, via PowerShell eller från en versionspipeline i ett arbetsflöde för kontinuerlig distribution. Den här rekommendationen beror på en ändring i hur Visual Studio kommunicerar med Fjärrskrivbord på den virtuella molntjänstdatorn, enligt beskrivningen i den här artikeln.

Konfigurera fjärrskrivbord via Visual Studio 2017 version 15.4 och tidigare

När du använder Visual Studio 2017 version 15.4 och tidigare kan du använda alternativet Aktivera fjärrskrivbord för alla roller i publiceringsguiden. Du kan fortfarande använda guiden med Visual Studio 2017 version 15.5 och senare, men använd inte alternativet Fjärrskrivbord.

  1. I Visual Studio startar du publiceringsguiden genom att högerklicka på molntjänstprojektet i Solution Explorer och välja Publicera.

  2. Logga in på din Azure-prenumeration om det behövs och välj Nästa.

  3. På sidan Inställningar väljer du Aktivera fjärrskrivbord för alla roller och sedan länken Inställningar... för att öppna dialogrutan Konfiguration av fjärrskrivbord .

  4. Längst ned i dialogrutan väljer du Fler alternativ. Det här kommandot visar en listruta där du skapar eller väljer ett certifikat så att du kan kryptera information om autentiseringsuppgifter när du ansluter via fjärrskrivbord.

    Anteckning

    De certifikat som du behöver för en fjärrskrivbordsanslutning skiljer sig från de certifikat som du använder för andra Azure-åtgärder. Certifikatet för fjärråtkomst måste ha en privat nyckel.

  5. Välj ett certifikat i listan eller välj <Skapa...>. Om du skapar ett nytt certifikat anger du ett eget namn för det nya certifikatet när du uppmanas till det och väljer OK. Det nya certifikatet visas i listrutan.

  6. Ange ett användarnamn och ett lösenord. Du kan inte använda ett befintligt konto. Använd inte "Administratör" som användarnamn för det nya kontot.

  7. Välj ett datum då kontot upphör att gälla och därefter blockeras fjärrskrivbordsanslutningar.

  8. När du har angett all nödvändig information väljer du OK. Visual Studio lägger till inställningarna för Fjärrskrivbord i projektets .cscfg filer och .csdef filer, inklusive lösenordet som krypteras med det valda certifikatet.

  9. Slutför eventuella återstående steg med knappen Nästa och välj sedan Publicera när du är redo att publicera din molntjänst. Om du inte är redo att publicera väljer du Avbryt och svarar Ja när du uppmanas att spara ändringarna. Du kan publicera molntjänsten senare med de här inställningarna.

Konfigurera fjärrskrivbord när du använder Visual Studio 2017 version 15.5 och senare

Med Visual Studio 2017 version 15.5 och senare kan du fortfarande använda publiceringsguiden med ett molntjänstprojekt. Du kan också använda alternativet Aktivera fjärrskrivbord för alla roller om du bara arbetar som en enda utvecklare.

Om du arbetar som en del av ett team bör du i stället aktivera fjärrskrivbord i Azure-molntjänsten med hjälp av antingen Azure Portal eller PowerShell.

Den här rekommendationen beror på en ändring i hur Visual Studio 2017 version 15.5 och senare kommunicerar med den virtuella molntjänstdatorn. När du aktiverar Fjärrskrivbord via publiceringsguiden kommunicerar tidigare versioner av Visual Studio med den virtuella datorn via det som kallas "RDP-plugin-programmet". Visual Studio 2017 version 15.5 och senare kommunicerar i stället med hjälp av "RDP-tillägget" som är säkrare och mer flexibelt. Den här ändringen överensstämmer också med det faktum att Azure Portal- och PowerShell-metoderna för att aktivera Fjärrskrivbord också använder RDP-tillägget.

När Visual Studio kommunicerar med RDP-tillägget överför det ett lösenord för oformaterad text via TLS. Projektets konfigurationsfiler lagrar dock endast ett krypterat lösenord, som endast kan dekrypteras till oformaterad text med det lokala certifikat som ursprungligen användes för att kryptera det.

Om du distribuerar molntjänstprojektet från samma utvecklingsdator varje gång är det lokala certifikatet tillgängligt. I det här fallet kan du fortfarande använda alternativet Aktivera fjärrskrivbord för alla roller i publiceringsguiden.

Om du eller andra utvecklare vill distribuera molntjänstprojektet från olika datorer har de andra datorerna dock inte det certifikat som krävs för att dekryptera lösenordet. Därför visas följande felmeddelande:

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

Du kan ändra lösenordet varje gång du distribuerar molntjänsten, men den åtgärden blir obekväm för alla som behöver använda Fjärrskrivbord.

Om du delar projektet med ett team är det bäst att avmarkera alternativet i publiceringsguiden och i stället aktivera Fjärrskrivbord direkt via Azure Portal eller med hjälp av PowerShell.

Distribuera från en byggserver med Visual Studio 2017 version 15.5 och senare

Du kan distribuera ett molntjänstprojekt från en byggserver (till exempel med Azure DevOps Services) där Visual Studio 2017 version 15.5 eller senare installeras i byggagenten. Med det här arrangemanget sker distributionen från samma dator där krypteringscertifikatet är tillgängligt.

Om du vill använda RDP-tillägget från Azure DevOps Services inkluderar du följande information i din bygg-pipeline:

  1. Inkludera /p:ForceRDPExtensionOverPlugin=true i dina MSBuild-argument för att se till att distributionen fungerar med RDP-tillägget i stället för RDP-plugin-programmet. Exempel:

    msbuild AzureCloudService5.ccproj /t:Publish /p:TargetProfile=Cloud /p:DebugType=None
        /p:SkipInvalidConfigurations=true /p:ForceRDPExtensionOverPlugin=true
    
  2. När du har skapat stegen lägger du till steget Distribution av Azure Cloud Service och anger dess egenskaper.

  3. Efter distributionssteget lägger du till ett Azure PowerShell steg, anger egenskapen Visningsnamn till "Azure Deployment: Enable RDP Extension" (eller ett annat lämpligt namn) och väljer lämplig Azure-prenumeration.

  4. Ange Skripttyp till "Infogad" och klistra in koden nedan i fältet Infogat skript . (Du kan också skapa en .ps1 fil i projektet med det här skriptet, ställa in Skripttyp på "Skriptfilsökväg" och ange Skriptsökväg så att den pekar på filen.)

    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
    

Ansluta till en Azure-roll med fjärrskrivbord

När du har publicerat molntjänsten i Azure och aktiverat Fjärrskrivbord kan du använda Visual Studio Server Explorer för att logga in på molntjänstens virtuella dator:

  1. I Server Explorer expanderar du Azure-noden och expanderar sedan noden för en molntjänst och en av dess roller för att visa en lista över instanser.

  2. Högerklicka på en instansnod och välj Anslut med fjärrskrivbord.

  3. Ange det användarnamn och lösenord som du skapade tidigare. Du är nu inloggad i fjärrsessionen.

Ytterligare resurser

Konfigurera Cloud Services