Verbinding met extern bureaublad inschakelen voor een rol in Azure Cloud Services (klassiek) met behulp van Visual Studio

Belangrijk

Cloud Services (klassiek) is nu afgeschaft voor nieuwe klanten en wordt op 31 augustus 2024 voor alle klanten buiten gebruik gesteld. Nieuwe implementaties moeten gebruikmaken van het nieuwe implementatiemodel op basis van Azure Resource Manager Azure Cloud Services (uitgebreide ondersteuning).

Met Extern bureaublad hebt u toegang tot het bureaublad van een rol die wordt uitgevoerd in Azure. U kunt een verbinding met extern bureaublad gebruiken om problemen met uw toepassing op te lossen en vast te stellen terwijl deze wordt uitgevoerd.

De wizard Publiceren die Visual Studio biedt voor cloudservices bevat een optie om Extern bureaublad in te schakelen tijdens het publicatieproces, met behulp van referenties die u opgeeft. Het gebruik van deze optie is geschikt wanneer u Visual Studio 2017 versie 15.4 en eerder gebruikt.

Met Visual Studio 2017 versie 15.5 en hoger is het echter raadzaam extern bureaublad niet in te schakelen via de wizard Publiceren, tenzij u alleen als één ontwikkelaar werkt. Voor elke situatie waarin het project kan worden geopend door andere ontwikkelaars, schakelt u in plaats daarvan Extern bureaublad in via de Azure Portal, via PowerShell of vanuit een release-pijplijn in een werkstroom voor continue implementatie. Deze aanbeveling is het gevolg van een wijziging in de communicatie van Visual Studio met Extern bureaublad op de cloudservice-VM, zoals wordt uitgelegd in dit artikel.

Extern bureaublad configureren via Visual Studio 2017 versie 15.4 en eerder

Wanneer u Visual Studio 2017 versie 15.4 en eerder gebruikt, kunt u de optie Extern bureaublad inschakelen voor alle rollen gebruiken in de wizard Publiceren. U kunt de wizard nog steeds gebruiken met Visual Studio 2017 versie 15.5 en hoger, maar gebruik niet de optie Extern bureaublad.

  1. Start de wizard Publiceren in Visual Studio door met de rechtermuisknop op uw cloudserviceproject in Solution Explorer te klikken en Publiceren te kiezen.

  2. Meld u indien nodig aan bij uw Azure-abonnement en selecteer Volgende.

  3. Selecteer op de pagina Instellingende optie Extern bureaublad inschakelen voor alle rollen en selecteer vervolgens de koppeling Instellingen... om het dialoogvenster Configuratie van extern bureaublad te openen.

  4. Selecteer onder aan het dialoogvenster Meer opties. Met deze opdracht wordt een vervolgkeuzelijst weergegeven waarin u een certificaat maakt of kiest, zodat u referenties kunt versleutelen wanneer u verbinding maakt via extern bureaublad.

    Notitie

    De certificaten die u nodig hebt voor een verbinding met extern bureaublad, verschillen van de certificaten die u gebruikt voor andere Azure-bewerkingen. Het RAS-certificaat moet een persoonlijke sleutel hebben.

  5. Selecteer een certificaat in de lijst of kies <Maken...>. Als u een nieuw certificaat maakt, geeft u een beschrijvende naam op voor het nieuwe certificaat wanneer u hierom wordt gevraagd en selecteert u OK. Het nieuwe certificaat wordt weergegeven in de vervolgkeuzelijst.

  6. Geef een gebruikersnaam en wachtwoord op. U kunt geen bestaand account gebruiken. Gebruik 'Administrator' niet als de gebruikersnaam voor het nieuwe account.

  7. Kies een datum waarop het account verloopt en waarna extern bureaublad-verbindingen worden geblokkeerd.

  8. Nadat u alle vereiste gegevens hebt opgegeven, selecteert u OK. Visual Studio voegt de extern bureaublad-instellingen toe aan uw project .cscfg en .csdef bestanden, inclusief het wachtwoord dat is versleuteld met het gekozen certificaat.

  9. Voer de resterende stappen uit met behulp van de knop Volgende en selecteer vervolgens Publiceren wanneer u klaar bent om uw cloudservice te publiceren. Als u nog niet klaar bent om te publiceren, selecteert u Annuleren en antwoordt u Ja wanneer u wordt gevraagd om wijzigingen op te slaan. U kunt uw cloudservice later publiceren met deze instellingen.

Extern bureaublad configureren bij gebruik van Visual Studio 2017 versie 15.5 en hoger

Met Visual Studio 2017 versie 15.5 en hoger kunt u de wizard Publiceren nog steeds gebruiken met een cloudserviceproject. U kunt ook de optie Extern bureaublad inschakelen voor alle rollen gebruiken als u alleen als één ontwikkelaar werkt.

Als u als onderdeel van een team werkt, moet u in plaats daarvan extern bureaublad inschakelen in de Azure-cloudservice met behulp van de Azure Portal of PowerShell.

Deze aanbeveling is het gevolg van een wijziging in de communicatie tussen Visual Studio 2017 versie 15.5 en hoger met de cloudservice-VM. Wanneer u Extern bureaublad inschakelt via de publicatiewizard, communiceren eerdere versies van Visual Studio met de VM via de zogenaamde RDP-invoegtoepassing. Visual Studio 2017 versie 15.5 en hoger communiceert in plaats daarvan met behulp van de RDP-extensie die veiliger en flexibeler is. Deze wijziging komt ook overeen met het feit dat de methoden Azure Portal en PowerShell om Extern bureaublad in te schakelen ook gebruikmaken van de RDP-extensie.

Wanneer Visual Studio communiceert met de RDP-extensie, wordt via TLS een wachtwoord voor tekst zonder opmaak verzonden. De configuratiebestanden van het project slaan echter alleen een versleuteld wachtwoord op, dat alleen kan worden ontsleuteld in tekst zonder opmaak met het lokale certificaat dat oorspronkelijk is gebruikt om het te versleutelen.

Als u het cloudserviceproject elke keer vanaf dezelfde ontwikkelcomputer implementeert, is dat lokale certificaat beschikbaar. In dit geval kunt u nog steeds de optie Extern bureaublad inschakelen voor alle rollen gebruiken in de wizard Publiceren.

Als u of andere ontwikkelaars het cloudserviceproject echter vanaf verschillende computers willen implementeren, beschikken deze andere computers niet over het benodigde certificaat om het wachtwoord te ontsleutelen. Als gevolg hiervan ziet u het volgende foutbericht:

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

U kunt het wachtwoord wijzigen telkens wanneer u de cloudservice implementeert, maar die actie wordt lastig voor iedereen die Extern bureaublad moet gebruiken.

Als u het project met een team deelt, kunt u het beste de optie in de wizard Publiceren wissen en in plaats daarvan Extern bureaublad rechtstreeks via de Azure Portal of met behulp van PowerShell inschakelen.

Implementeren vanaf een buildserver met Visual Studio 2017 versie 15.5 en hoger

U kunt een cloudserviceproject implementeren vanaf een buildserver (bijvoorbeeld met Azure DevOps Services) waarop Visual Studio 2017 versie 15.5 of hoger is geïnstalleerd in de buildagent. Met deze regeling vindt de implementatie plaats vanaf dezelfde computer waarop het versleutelingscertificaat beschikbaar is.

Als u de RDP-extensie van Azure DevOps Services wilt gebruiken, neemt u de volgende gegevens op in uw build-pijplijn:

  1. Neem op /p:ForceRDPExtensionOverPlugin=true in uw MSBuild-argumenten om ervoor te zorgen dat de implementatie werkt met de RDP-extensie in plaats van de RDP-invoegtoepassing. Bijvoorbeeld:

    msbuild AzureCloudService5.ccproj /t:Publish /p:TargetProfile=Cloud /p:DebugType=None
        /p:SkipInvalidConfigurations=true /p:ForceRDPExtensionOverPlugin=true
    
  2. Voeg na de buildstappen de stap Implementatie van Azure Cloud Service toe en stel de eigenschappen ervan in.

  3. Voeg na de implementatiestap een Azure PowerShell stap toe, stel de eigenschap Weergavenaam in op 'Azure-implementatie: RDP-extensie inschakelen' (of een andere geschikte naam) en selecteer uw juiste Azure-abonnement.

  4. Stel Scripttype in op 'Inline' en plak de onderstaande code in het veld Inline script . (U kunt ook een .ps1 bestand in uw project maken met dit script, Scripttype instellen op 'Scriptbestandspad' en Scriptpad instellen om naar het bestand te verwijzen.)

    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
    

Verbinding maken met een Azure-rol met behulp van Extern bureaublad

Nadat u uw cloudservice in Azure hebt gepubliceerd en Extern bureaublad hebt ingeschakeld, kunt u Visual Studio Server Explorer gebruiken om u aan te melden bij de cloudservice-VM:

  1. Vouw in Server Explorer het Azure-knooppunt uit en vouw vervolgens het knooppunt voor een cloudservice en een van de rollen uit om een lijst met exemplaren weer te geven.

  2. Klik met de rechtermuisknop op een exemplaarknooppunt en selecteer Verbinding maken via Extern bureaublad.

  3. Voer de gebruikersnaam en het wachtwoord in die u eerder hebt gemaakt. U bent nu aangemeld bij uw externe sessie.

Aanvullende resources

Cloud Services configureren