Параметры приложения Service Fabric не переопределяются параметрами манифеста приложения - PullRequest
0 голосов
/ 30 октября 2018

Требуется некоторая помощь в понимании того, почему параметры конфигурации приложения сервисной фабрики не переопределяются значениями, определенными в манифесте приложения, как и ожидалось. В настоящий момент у меня есть некоторые настройки, определенные для двух разных сред: настройки по умолчанию для конечного кластера Azure, и у меня есть настраиваемый профиль публикации для моего локального кластера dev.

Ниже того, что у меня есть для каждого файла:

SampleServFabricApp / ApplicationPackageRoot / ApplicationManifest.xml

<ApplicationManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="SampleServFabricAppType" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
  <Parameters>
    <Parameter Name="SampleServFabricApp_MessageTransportConfig_CertificateFindValue" DefaultValue="e47c0e4b80e9b83e39e5e1dc35610b6b84a3b764" />
    <Parameter Name="SampleServFabricApp_MessageTransportConfig_CertificateRemoteCommonNames" DefaultValue="*.thefinaldomain.com" />
    <Parameter Name="SampleServFabricApp_MessageTransportConfig_CertificateRemoteThumbprints" DefaultValue="e47c0e4b80e9b83e39e5e1dc35610b6b84a3b764" />
    <Parameter Name="SampleServFabricApp_PartitionCount" DefaultValue="10" />
    <Parameter Name="SampleServFabricApp_MinReplicaSetSize" DefaultValue="3" />
    <Parameter Name="SampleServFabricApp_TargetReplicaSetSize" DefaultValue="3" />
  </Parameters>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="SampleServFabricApp.EndpointPkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="SampleServFabricApp_MessageTransportConfig">
            <Parameter Name="CertificateFindValue" Value="[SampleServFabricApp_MessageTransportConfig_CertificateFindValue]" />
            <Parameter Name="CertificateRemoteCommonNames" Value="[SampleServFabricApp_MessageTransportConfig_CertificateRemoteCommonNames]" />
            <Parameter Name="CertificateRemoteThumbprints" Value="[SampleServFabricApp_MessageTransportConfig_CertificateRemoteThumbprints]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <DefaultServices>
    <Service Name="SampleServFabricAppActorService" GeneratedIdRef="e07529c2-2426-4065-b621-90033a78704c|Persisted">
      <StatefulService ServiceTypeName="SampleServFabricAppActorServiceType" TargetReplicaSetSize="[SampleServFabricApp_TargetReplicaSetSize]" MinReplicaSetSize="[SampleServFabricApp_MinReplicaSetSize]">
        <UniformInt64Partition PartitionCount="[SampleServFabricApp_PartitionCount]" LowKey="-9223372036854775808" HighKey="9223372036854775807" />
      </StatefulService>
    </Service>
  </DefaultServices>
</ApplicationManifest>

SampleServFabricApp / ApplicationParameters / dev_cluster.xml

<?xml version="1.0" encoding="utf-8"?>
<Application xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="fabric:/SampleServFabricApp" xmlns="http://schemas.microsoft.com/2011/01/fabric">
  <Parameters>
    <Parameter Name="SampleServFabricApp_MessageTransportConfig_CertificateFindValue" Value="4826f9a3ac95bca949fab19ea136e197" />
    <Parameter Name="SampleServFabricApp_MessageTransportConfig_CertificateRemoteCommonNames" Value="ServiceFabricDevClusterCert" />
    <Parameter Name="SampleServFabricApp_MessageTransportConfig_CertificateRemoteThumbprints" Value="4826f9a3ac95bca949fab19ea136e197" />
  </Parameters>
</Application>

SampleServFabricApp.Endpoint / PackageRoot / Config / Settings.xml

<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric">
  <Section Name="SampleServFabricApp_MessageTransportConfig">
    <Parameter Name="MaxMessageSize" Value="10000000" />
    <Parameter Name="SecurityCredentialsType" Value="X509" />
    <Parameter Name="CertificateFindType" Value="FindByThumbprint" />
    <Parameter Name="CertificateFindValue" Value="e47c0e4b80e9b83e39e5e1dc35610b6b84a3b764" />
    <Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
    <Parameter Name="CertificateStoreName" Value="My" />
    <Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" />
    <Parameter Name="CertificateRemoteCommonNames" Value="*.thefinaldomain.com" />
    <Parameter Name="CertificateRemoteThumbprints" Value="e47c0e4b80e9b83e39e5e1dc35610b6b84a3b764" />
  </Section>
</Settings>

При публикации приложения в локальном кластере, я вижу в выводе журнал при создании приложения, и кажется, что параметры в порядке:

2> Создание приложения ... 2> 2> 2> ApplicationName: fabric: / SampleServFabricApp 2> ApplicationTypeName: SampleServFabricAppType 2> ApplicationTypeVersion: 1.0.0 2> Параметры приложения: { "SampleServFabricApp_MessageTransportConfig_CertificateRemoteThumbprints" = 2> "4826f9a3ac95bca949fab19ea136e197"; 2> "SampleServFabricApp_MessageTransportConfig_CertificateRemoteCommonNames" = 2> "ServiceFabricDevClusterCert"; 2> "SampleServFabricApp_MessageTransportConfig_CertificateFindValue" = 2> "4826f9a3ac95bca949fab19ea136e197"; } 2> 2> Создание приложения выполнено успешно.

Но с помощью обозревателя служб я вижу, что во время запуска приложения возникли ошибки, и если я проверю журнал событий, я вижу следующую ошибку:

не удалось установить параметры безопасности на {поставщик = SSL protection = EncryptAndSign certType = '' store = 'LocalMachine / My' findValue = 'FindByThumbprint: e47c0e4b80e9b83e39e5e1dc35610b6b84a3b764' remoteCertThumbprints = 'e47c0e4b80e9b83e39e5e1dc35610b6b84a3b764' remoteX509Names = ( '*. thefinaldomain.com', выпускающий =) certChainFlags = 40000000 isClientRoleInEffect = false претендентBasedClientAuthEnabled = false}: FABRIC_E_CERTIFICATE_NOT_FOUND

Некоторые вещи, которые я уже пробовал: - использовал обозреватель Service Fabric и подтвердил, что параметры на вкладке «Детали» приложения являются правильными и соответствуют параметрам, которые были отправлены в сценарий развертывания в соответствии с окном вывода; - Подтверждено, что содержимое файла «Settings.xml» в папке «C: \ SfDevCluster \ Data_App_Node_0 \ SampleServFabricAppType_App18 \ SampleServFabricApp.EndpointPkg.Config.1.0.0» совпадает с содержимым «SampleSerEndo.PoRe.NET» / Settings.xml ";

Есть идеи, если это ошибка или в ней отсутствует то, чего я действительно не вижу? Как вы можете видеть, кажется, что процесс развертывания принимает правильные переопределенные значения, но приложение не работает, и средство просмотра событий показывает значения по умолчанию вместо тех, которые использовались во время развертывания.

Спасибо.

1 Ответ

0 голосов
/ 31 октября 2018

Я только что получил ответ на вопрос, который открыл на GitHub. Кажется, описанное поведение известно и будет исправлено в выпуске SDK 3.3. Для всех вас, кто хочет проверить это, вы можете найти проблему здесь

...