Поделиться через


Как параметризовать файлы конфигурации в 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, см. в статье Использование Visual Studio для упрощения создания приложений Service Fabric и управления ими.