Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как параметризировать файл конфигурации в Service Fabric. Если вы еще не знакомы с основными понятиями управления приложениями для нескольких сред, прочитайте статью "Управление приложениями для нескольких сред".
Процедура параметризации файлов конфигурации
В этом примере вы переопределите значение конфигурации с помощью параметров в развертывании приложения.
<Откройте файл MyService>\PackageRoot\Config\Settings.xml в проекте службы.
Задайте имя и значение параметра конфигурации, например размер кэша равный 25, добавив следующий XML:
<Section Name="MyConfigSection"> <Parameter Name="CacheSize" Value="25" /> </Section>Сохраните и закройте файл.
<Откройте файл\ApplicationPackageRoot\ApplicationManifest.xmlMyApplication>.
В файле ApplicationManifest.xml объявите параметр и значение по умолчанию в элементе
Parameters. Рекомендуется, чтобы имя параметра содержало имя службы (например, MyService).<Parameters> <Parameter Name="MyService_CacheSize" DefaultValue="80" /> </Parameters>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 всегда выбирает параметры приложения или значение по умолчанию, указанное в манифесте приложения.
Доступ к параметризованным конфигурациям в коде
Примечание.
Слишком много или больших переопределений может повлиять на производительность API.
Вместо использования FabricClient.QueryClient.GetApplicationListAsync извлеките параметры с помощью метода, описанного в этом разделе. Для кластеров со многими приложениями попробуйте использовать значения по умолчанию для повышения производительности. Влияние параметров приложения на производительность зависит от таких факторов, как размер виртуальной машины, количество параметров, количество приложений и длина значений.
Вы можете получить доступ к конфигурации в файле 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.