تمكين اتصال سطح المكتب البعيد لدور في خدمات Azure السحابية (كلاسيكي) باستخدام Visual Studio

هام

تم الآن إهمال Cloud Services (كلاسيكي) للعملاء الجدد وسيتم استبعادها في 31 أغسطس 2024 لجميع العملاء. ينبغي أن تستخدم عمليات النشر الجديدة نموذج النشر الجديد القائم على Azure Resource Manager ‏‏Azure Cloud Services (الدعم الموسع) .

يمكنك سطح المكتب البعيد من الوصول إلى سطح المكتب من دور قيد التشغيل في Azure. يمكنك استخدام اتصال سطح المكتب البعيد لاستكشاف وتشخيص المشاكل في التطبيق أثناء تشغيله.

يتضمن معالج التوزيع الذي يوفره Visual Studio للخدمات السحابية خيارًا لتمكين "سطح المكتب البعيد" أثناء عملية التوزيع، باستخدام بيانات الاعتماد التي تقدمها. استخدام هذا الخيار مناسب عند استخدام Visual Studio الإصدار 15.4 من 2017 وما قبله.

مع إصدار Visual Studio 15.5 من 2017 والإصدارات الأحدث، يوصى بتجنب تمكين "سطح المكتب البعيد" من خلال معالج التوزيع إلا إذا كنت تعمل فقط كمطور واحد. بالنسبة لأي موقف قد يتم فيه فتح المشروع من قِبل مطورين آخرين، يمكنك بدلًا من ذلك تمكين سطح المكتب البعيد من خلال مدخل Microsoft Azure، أو من خلال PowerShell، أو من مسار إصدار في سير عمل توزيع مستمر. ترجع هذه التوصية إلى تغيير في كيفية اتصال Visual Studio مع سطح المكتب البعيد على الخدمة السحابية للأجهزة الظاهرية، كما هو موضح في هذه المقالة.

تكوين سطح المكتب البعيد من خلال الإصدار 15.4 Visual Studio 2017 والإصدارات السابقة

عند استخدام إصدار Visual Studio 15.4 2017 والإصدارات السابقة، يمكنك استخدام خيار تمكين سطح المكتب البعيد لجميع الأدوار في معالج التوزيع. لا يزال بإمكانك استخدام المعالج مع الإصدار 15.5 Visual Studio 2017 والإصدارات الأحدث، ولكن لا تستخدم خيار سطح المكتب البعيد.

  1. في Visual Studio، شغّل معالج التوزيع بالنقر بزر الماوس الأيمن فوق مشروع الخدمة السحابية في مستكشف الحلول واختيار نشر.

  2. سجل الدخول إلى اشتراك Azure إذا لزم الأمر وحدد التالي.

  3. في صفحة الإعدادات، حدد تمكين سطح المكتب البعيد لجميع الأدوار، ثم حدد الارتباط الإعدادات... لفتح مربع الحوار تكوين سطح المكتب البعيد.

  4. ثم في الجزء السفلي من مربع الحوار، حدد "مزيد من الخيارات" . يعرض هذا الأمر قائمة منسدلة تقوم فيها بإنشاء شهادة أو اختيارها بحيث يمكنك تشفير معلومات بيانات الاعتماد عند الاتصال عبر سطح المكتب البعيد.

    ملاحظة

    تختلف الشهادات التي تحتاجها لاتصال سطح مكتب بعيد عن الشهادات التي تستخدمها لعمليات Azure الأخرى. يجب أن يكون لشهادة الوصول البعيد مفتاح خاص.

  5. حدد شهادة من القائمة أو اختر < إنشاء... > . إذا قمت بإنشاء شهادة جديدة، قم بتوفير اسم مألوف للشهادة الجديدة عند المطالبة وحدد "موافق" . تظهر الشهادة الجديدة في مربع القائمة المنسدلة.

  6. أدخل اسم مستخدم وكلمة مرور. لا يمكنك استخدام حساب قائم. لا تستخدم "المسؤول" كاسم مستخدم لحساب جديد.

  7. اختر تاريخ انتهاء صلاحية الحساب وبعد ذلك سيتم حظر اتصالات سطح المكتب البعيد.

  8. بعد تقديم جميع المعلومات المطلوبة، حدد "موافق" . يضيف Visual Studio إعدادات سطح المكتب البعيد إلى .cscfg ملفات المشروع، .csdef بما في ذلك كلمة المرور المشفرة باستخدام الشهادة المختارة.

  9. أكمِل أي خطوات متبقية باستخدام زر "التالي"، ثم حدد "نشر" عندما تكون مستعدًا لنشر خدمتك السحابية. إذا لم تكن مستعدًا للنشر، فحدد "إلغاء الأمر" وأجب "نعم" عند مطالبتك بحفظ التغييرات. يمكنك توزيع الخدمة السحابية لاحقًا باستخدام هذه الإعدادات.

تكوين سطح المكتب البعيد عند استخدام Visual Studio الإصدار 15.5 2017 والإصدارات الأحدث

مع Visual Studio الإصدار 15.5 لعام 2017 والإصدارات الأحدث، لا يزال بإمكانك استخدام معالج النشر مع مشروع خدمة سحابية. يمكنك أيضًا استخدام الخيار تمكين سطح المكتب البعيد لجميع الأدوار إذا كنت تعمل فقط كمطور فردي.

إذا كنت تعمل كجزء من فريق، فعليك بدلًا من ذلك تمكين سطح المكتب البعيد على خدمة Azure السحابية باستخدام إما مدخل Microsoft Azure أو PowerShell.

ترجع هذه التوصية إلى تغيير في كيفية اتصال Visual Studio الإصدار 15.5 لعام 2017 وما بعده بالخدمة السحابية للجهاز الظاهري. عند تمكين "سطح المكتب البعيد" من خلال معالج النشر، تتصل الإصدارات السابقة من Visual Studio بالجهاز الظاهري عن طريق ما يُسمى "بالمكون الإضافي RDP". بدلًا من ذلك، يتصل الإصدار 15.5 من Visual Studio 2017 والإصدارات الأحدث باستخدام "ملحق RDP" الأكثر أمانًا ومرونة. هذا التغيير أيضًا يصطف مع حقيقة أن مدخل Microsoft Azure وأساليب PowerShell لتمكين سطح المكتب البعيد تستخدم أيضًا RDP.

عندما يتصل Visual Studio مع ملحق RDP، فإنه ينقل كلمة مرور نص عادي عبر TLS. ومع ذلك، ملفات التكوين للمشروع تخزن كلمة مرور مشفرة فقط، والتي يمكن فك تشفيرها إلى نص عادي فقط مع الشهادة المحلية التي تم استخدامها أصلًا لتشفيره.

إذا قمت بتوزيع مشروع الخدمة السحابية من نفس كمبيوتر التطوير في كل مرة، فسوف تتوفر هذه الشهادة المحلية. في هذه الحالة، لا يزال بإمكانك استخدام الخيار تمكين سطح المكتب البعيد لجميع الأدوار في معالج النشر.

إذا أردت أنت أو مطورون آخرون توزيع مشروع الخدمة السحابية من أجهزة كمبيوتر مختلفة، فلن يكون لدى أجهزة الكمبيوتر الأخرى هذه الشهادة اللازمة لفك تشفير كلمة المرور. ونتيجة لذلك، تشاهد رسالة الخطأ التالية:

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

يمكنك تغيير كلمة المرور في كل مرة تقوم فيها بتوزيع الخدمة السحابية، ولكن هذا الإجراء يصبح غير مريح لكل من يحتاج استخدام سطح المكتب البعيد.

إذا كنت تشارك المشروع مع فريق، فمن الأفضل مسح الخيار في معالج النشر وتمكين سطح المكتب البعيد مباشرة من خلال مدخل Microsoft Azure أو باستخدام PowerShell.

التوزيع من خادم بناء مع الإصدار 15.5 Visual Studio 2017 وما بعده

يمكنك توزيع مشروع الخدمة السحابية من خادم بناء (على سبيل المثال، مع خدمات DevOps Azure) حيث يكون Visual Studio الإصدار 15.5 2017 أو أحدث مثبتًا في عامل البناء. مع هذا الترتيب، يحدث التوزيع من نفس الكمبيوتر الذي تتوفر عليه شهادة التشفير.

لاستخدام ملحق RDP من خدمات DevOps Azure، قم بتضمين التفاصيل التالية في مسار البنية:

  1. التضمين /p:ForceRDPExtensionOverPlugin=true في الوسائط MSBuild للتأكد من أن التوزيع يعمل مع ملحق RDP بدلًا من المكون الإضافي RDP. على سبيل المثال:

    msbuild AzureCloudService5.ccproj /t:Publish /p:TargetProfile=Cloud /p:DebugType=None
        /p:SkipInvalidConfigurations=true /p:ForceRDPExtensionOverPlugin=true
    
  2. بعد خطوات الإنشاء، أضف خطوة نشر الخدمة السحابية Azure ثم قم بتعيين خصائصها.

  3. بعد خطوة التوزيع، أضف خطوة Azure PowerShell، وعيّن خاصية Display name إلى "Azure Deployment: Enable RDP Extension" (أو اسم مناسب آخر)، وحدد اشتراكك المناسب في Azure.

  4. تعيين نوع البرنامج النصي إلى "مضمن" ولصق التعليمات البرمجية أدناه في حقل "البرنامج النصي المضمن". (يمكنك أيضًا إنشاء .ps1 ملف في المشروع الخاص بك مع هذا البرنامج النصي، وتعيين نوع البرنامج النصي إلى "Script File Path" وتعيين "مسار البرنامج النصي" للإشارة إلى الملف.)

    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
    

الاتصال إلى دور Azure باستخدام سطح المكتب البعيد

بعد توزيع الخدمة السحابية على Azure وتمكين "سطح المكتب البعيد"، يمكنك استخدام Visual Studio Server Explorer لتسجيل الدخول إلى الخدمة السحابية للجهاز الظاهري:

  1. في مستكشف الملقم، قم بتوسيع عقدة Azure، ثم قم بتوسيع العقدة للخدمة السحابية وأحد أدوارها لعرض قائمة بالمثيلات.

  2. انقر بزر الماوس الأيمن فوق عقدة مثيل وحدد الاتصال باستخدام سطح المكتب البعيد.

  3. أدخِل اسم المستخدم وكلمة المرور اللذين حددتهما عند إنشاء الجهاز الظاهري. لقد قمت بتسجيل الدخول الآن إلى جلسة العمل البعيدة.

الموارد الإضافية

كيفية تكوين الخدمات السحابية