كيفية وضع معلمات على ملفات التكوين في Service Fabric

توضح لك هذه المقالة كيفية وضع معلمة على ملف تكوين في Service Fabric. إذا لم تكن على دراية بالمفاهيم الأساسية لإدارة التطبيقات لبيئات متعددة، فاقرأ إدارة التطبيقات لبيئات متعددة.

إجراء لوضع معلمات على ملفات التكوين

في هذا المثال، يمكنك تجاوز قيمة تكوين باستخدام المعلمات في توزيع تطبيقك.

  1. افتح ملف <MyService>\PackageRoot\Config\Settings.xml في مشروع الخدمة المتوفر لديك.

  2. قم بتعيين اسم معلمة تكوين وقيمتها، على سبيل المثال حجم ذاكرة التخزين المؤقت يساوي 25، عن طريق إضافة XML التالي:

     <Section Name="MyConfigSection">
       <Parameter Name="CacheSize" Value="25" />
     </Section>
    
  3. احفظ الملف وأغلقه.

  4. افتح الملف <MyApplication>\ApplicationPackageRoot\ApplicationManifest.xml.

  5. في ملف ApplicationManifest.xml، قم بإعلان معلمة وقيمة افتراضية في العنصر Parameters. من الأفضل أن يحتوي اسم المعلمة على اسم الخدمة (على سبيل المثال، "MyService").

     <Parameters>
       <Parameter Name="MyService_CacheSize" DefaultValue="80" />
     </Parameters>
    
  6. في قسم ServiceManifestImport من ملف ApplicationManifest.xml، أضف ConfigOverrides وعنصر ConfigOverride، بالإشارة إلى حزمة التكوين والقسم والمعلمة.

     <ConfigOverrides>
       <ConfigOverride Name="Config">
           <Settings>
             <Section Name="MyConfigSection">
                 <Parameter Name="CacheSize" Value="[MyService_CacheSize]" />
             </Section>
           </Settings>
       </ConfigOverride>
     </ConfigOverrides>
    

إشعار

في حالة إضافة ConfigOverride، يختار Service Fabric دائمًا معلمات التطبيق أو القيمة الافتراضية المحددة في بيان التطبيق.

الوصول إلى التكوينات ذات المعلمات في التعليمات البرمجية

يمكنك الوصول إلى التكوين في ملف settings.xml برمجيًا. خذ على سبيل المثال، ملف XML للتكوين التالي:

<Settings
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://schemas.microsoft.com/2011/01/fabric">
	<!-- Add your custom configuration sections and parameters here -->
	<Section Name="MyConfigSection">
		<Parameter Name="MyParameter" Value="Value1" />
	</Section>
</Settings>     

استخدم التعليمات البرمجية التالية للوصول إلى المعلمات:

CodePackageActivationContext context = FabricRuntime.GetActivationContext();
var configSettings = context.GetConfigurationPackageObject("Config").Settings;
var data = configSettings.Sections["MyConfigSection"];
foreach (var parameter in data.Parameters)
{
  ServiceEventSource.Current.ServiceMessage(this.Context, "Working-{0} - {1}", parameter.Name, parameter.Value);
}

هنا Parameter.Name سيكون MyParameter وParameter.Value ستكون Value1

الخطوات التالية

للحصول على معلومات حول إمكانيات إدارة التطبيقات الأخرى المتوفرة في Visual Studio، راجع إدارة تطبيقات Service Fabric المتوفرة لديك في Visual Studio.