تكوين تطبيق ASP.NET Core من اجل خدمة تطبيقات Azure
إشعار
للحصول على ASP.NET Core، راجع تكوين تطبيق ASP.NET Core لخدمة تطبيقات Azure. إذا كان تطبيق ASP.NET يعمل في حاوية Windows أو Linux مخصصة، فشاهد تكوين حاوية مخصصة لخدمة تطبيقات Azure.
يجب توزيع ASP.NET التطبيقات في Azure App Service كثنائيات مجمعة. تنشئ أداة نشر Visual Studio الحل ثم توزيع الثنائيات المحولة برمجياً مباشرةً، بينما يقوم محرك توزيع App Service بتوزيع مستودع التعليمات البرمجية أولاً ثم يقوم بتجميع الثنائيات.
يوفر هذا الدليل المفاهيم الأساسية والإرشادات لمطوري ASP.NET. إذا لم يسبق لك استخدام Azure App Service، فاتبع ASP.NET التشغيل السريعوASP.NET مع البرنامج التعليمي لقاعدة بيانات SQL أولاً.
قم بإظهار إصدارات وقت تشغيل .NET Framework المدعومة
في خدمة التطبيقات، تم تثبيت جميع إصدارات .NET Framework المدعومة في مثيلات Windows بالفعل. لإظهار وقت التشغيل .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
بشكل افتراضي، تستخدم خدمة التطبيقات أحدث إصدار مدعوم من .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 المحلية تتبع أخطاء التطبيق محلياً، ولكن قيمة App Service تتيح لك تشغيل التطبيق في المنتج باستخدام الإعدادات المتعلقة بالإنتاج. سلاسل الاتصال تعمل بنفس الطريقة. بهذه الطريقة، يمكنك الاحتفاظ ببيانات سرية التطبيق الخاص بك خارج مستودع التعليمة البرمجية الخاص بك والوصول إلى القيم المناسبة دون تغيير التعليمة البرمجية الخاصة بك.
إشعار
ضع في اعتبارك خيارات اتصال أكثر أمانا لا تتطلب أسرار اتصال على الإطلاق. لمزيد من المعلومات، راجع الاتصال الآمن بخدمات وقواعد بيانات Azure من Azure App Service.
توزيع حلول متعددة المشاريع
عندما يتضمن حل Visual Studio عدة مشاريع، فإن عملية توزيع Visual Studio تتضمن بالفعل تحديد المشروع لتوزيعه. عند التوزيع إلى محرك توزيع App Service، مثل Git، أو مع توزيع ZIP مع تمكين أتمتة الإنشاء، يختار محرك توزيع App Service أول موقع ويب أو مشروع تطبيق ويب يعثر عليه باعتباره خدمة التطبيقات تطبيق. يمكن تحديد المشروع الذي يجب أن تستخدمه App Service من خلال تحديد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
.