Требуется некоторая помощь в понимании того, почему параметры конфигурации приложения сервисной фабрики не переопределяются значениями, определенными в манифесте приложения, как и ожидалось. В настоящий момент у меня есть некоторые настройки, определенные для двух разных сред: настройки по умолчанию для конечного кластера 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 ";
Есть идеи, если это ошибка или в ней отсутствует то, чего я действительно не вижу?
Как вы можете видеть, кажется, что процесс развертывания принимает правильные переопределенные значения, но приложение не работает, и средство просмотра событий показывает значения по умолчанию вместо тех, которые использовались во время развертывания.
Спасибо.