【问题标题】:Accessing application parameters directly from service直接从服务访问应用程序参数
【发布时间】:2016-12-25 17:57:29
【问题描述】:

是否可以直接从您的 SF 服务访问 ApplicationManifest.xml 中定义的参数?

我知道您可以在服务级别上定义参数并提供覆盖(如here 所述),但这非常麻烦。如果您有多个服务访问相同的参数(例如连接字符串),那么将它定义在一个地方会更容易,例如应用清单。

【问题讨论】:

  • 微服务的整个理念是独立的。所以很自然的,每个服务在几个地方都有相同的连接字符串。
  • 对公共事物使用相同的配置参数不会破坏它们的独立性,但会简化维护。我正在配置弹性搜索侦听器以按照教程中的建议收集日志,并且我需要为每个服务实现 4 次覆盖 - 为了这样一个简单的目标需要做很多工作......

标签: azure-service-fabric


【解决方案1】:

这是可能的,但并不容易。

  1. 获取清单 xml:
var fc = new FabricClient();         
var application = (await fc.QueryManager.GetApplicationListAsync(new Uri (Context.CodePackageActivationContext.ApplicationName))).Single();         
var applicationManifest = await fc.ApplicationManager.GetApplicationManifestAsync(application.ApplicationTypeName,
 application.ApplicationTypeVersion);
  1. 使用该 xml 来反序列化基于 XSD 架构的对象。 C:\Program Files\Microsoft SDKs\Service Fabric\schemas\ServiceFabricServiceModel.xsd (ApplicationManifestType)

(对格式感到抱歉)

【讨论】:

  • 但是这种机制不会使用 ApplicationParameters 文件夹中特定于环境的覆盖,对吧?
  • application.ApplicationParameters 有这些
猜你喜欢
  • 2012-06-27
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多