تكوين تطبيق ASP.NET لخدمة تطبيقات Azure

ملاحظة

للحصول على ASP.NET Core، راجع تكوين تطبيق ASP.NET Core لخدمة تطبيقات Azure

يجب نشر تطبيقات ASP.NET إلى Azure App Service كثنائيات مجمعة. تقوم أداة نشر Visual Studio بإنشاء الحل ثم نشر الثنائيات المترجمة مباشرة ، بينما يقوم محرك نشر App Service بنشر مستودع التعليمات البرمجية أولا ثم يقوم بتجميع الثنائيات.

يوفر هذا الدليل المفاهيم والتعليمات الأساسية لمطوري ASP.NET. إذا لم يسبق لك استخدام Azure App Service، فاتبع البرنامج التعليمي ASP.NET التشغيل السريع ASP.NETباستخدام قاعدة بيانات SQL أولا.

إظهار إصدارات وقت تشغيل .NET Framework المعتمدة

في App Service، تحتوي مثيلات Windows بالفعل على جميع إصدارات .NET Framework المدعومة المثبتة. لإظهار .NET Framework وقت تشغيل وإصدارات SDK المتوفرة لك، انتقل إلى الأمر المناسب وقم بتشغيله في وحدة التحكم المستندة إلى https://<app-name>.scm.azurewebsites.net/DebugConsole المستعرض:

بالنسبة لإصدارات وقت تشغيل CLR 4 (.NET Framework 4 والإصدارات الأحدث):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\"

قد لا يتوفر أحدث إصدار .NET Framework على الفور.

بالنسبة لإصدارات وقت تشغيل CLR 2 (.NET Framework 3.5 والإصدارات الأحدث):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\"

إظهار إصدار وقت تشغيل .NET Framework الحالي

قم بتشغيل الأمر التالي في Cloud Shell:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion

تعني قيمة v4.0 استخدام أحدث إصدار CLR 4 (.NET Framework 4.x). قيمة v2.0 تعني استخدام إصدار CLR 2 (.NET Framework 3.5).

تعيين إصدار وقت تشغيل .NET Framework

بشكل افتراضي، تستخدم App Service أحدث إصدار .NET Framework مدعوم لتشغيل تطبيق ASP.NET. لتشغيل تطبيقك باستخدام .NET Framework 3.5 بدلا من ذلك، قم بتشغيل الأمر التالي في Cloud Shell (يشير الإصدار 2.0 إلى CLR 2):

az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0

الوصول إلى متغيرات البيئة

في App Service، يمكنك تعيين إعدادات التطبيق وسلاسل الاتصال خارج رمز التطبيق. ثم يمكنك الوصول إليها في أي فئة باستخدام نمط ASP.NET القياسي:

using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}

إذا قمت بتكوين إعداد تطبيق بنفس الاسم في App Service وفي web.config، فإن قيمة App Service لها الأسبقية على القيمة web.config . تتيح لك قيمة web.config المحلية تصحيح أخطاء التطبيق محليا، ولكن تتيح لك قيمة خدمة التطبيق تشغيل التطبيق في المنتج باستخدام إعدادات الإنتاج. تعمل سلاسل الاتصال بنفس الطريقة. بهذه الطريقة، يمكنك الحفاظ على أسرار التطبيق خارج مستودع التعليمات البرمجية الخاص بك والوصول إلى القيم المناسبة دون تغيير التعليمات البرمجية الخاصة بك.

نشر حلول متعددة المشاريع

عندما يتضمن حل Visual Studio مشاريع متعددة، تتضمن عملية النشر Visual Studio بالفعل تحديد المشروع المراد نشره. عند النشر إلى محرك نشر خدمة التطبيقات، كما هو الحال مع Git، أو مع نشر ZIP مع تمكين التشغيل التلقائي للبناء، يختار محرك نشر خدمة التطبيقات أول موقع ويب أو تطبيق ويب Project يجده كتطبيق خدمة التطبيقات. يمكنك تحديد المشروع الذي يجب أن تستخدمه خدمة التطبيقات عن طريق تحديد PROJECT إعداد التطبيق. على سبيل المثال، قم بتشغيل ما يلي في Cloud Shell:

az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"

صفحة الحصول على استثناءات مفصلة

عندما ينشئ تطبيق ASP.NET استثناء في مصحح أخطاء Visual Studio، يعرض المستعرض صفحة استثناء مفصلة، ولكن في خدمة التطبيقات يتم استبدال هذه الصفحة برسالة خطأ عامة. لعرض صفحة الاستثناء التفصيلية في App Service، افتح ملف Web.config وأضف <customErrors mode="Off"/> العنصر الموجود أسفل العنصر <system.web> . على سبيل المثال:

<system.web>
    <customErrors mode="Off"/>
</system.web>

أعد نشر تطبيقك باستخدام Web.configالمحدثة . يجب أن تشاهد الآن نفس صفحة الاستثناء التفصيلية.

الوصول إلى سجلات التشخيص

يمكنك إضافة رسائل تشخيصية في التعليمات البرمجية للتطبيق باستخدام System.Diagnostics.Trace. على سبيل المثال:

Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace

للوصول إلى سجلات وحدة التحكم التي تم إنشاؤها من داخل التعليمة البرمجية للتطبيق في خدمة التطبيقات، قم بتشغيل تسجيل التشخيص عن طريق تشغيل الأمر التالي في Cloud Shell:

az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose

القيم المحتملة لـ --level هي: Error وWarning وInfo وVerbose. يتضمن كل مستوى لاحق المستوى السابق. على سبيل المثال: Error يتضمن رسائل الخطأ فقط بينما Verbose يتضمن جميع الرسائل.

بمجرد تشغيل التسجيل التشخيصي، قم بتشغيل الأمر التالي لمشاهدة تدفق السجل:

az webapp log tail --resource-group <resource-group-name> --name <app-name>

إذا كنت لا ترى سجلات وحدة التحكم على الفور، فتحقق مرة أخرى في غضون 30 ثانية.

ملاحظة

يمكنك أيضًا فحص ملفات السجل من المتصفح الموجود على https://<app-name>.scm.azurewebsites.net/api/logs/docker.

لإيقاف تسجيل التدفق في أي وقت، اكتب Ctrl+C.

المزيد من الموارد