gpt4 book ai didi

c# - 运行时获取服务版本

转载 作者:行者123 更新时间:2023-12-02 07:36:56 38 4
gpt4 key购买 nike

如何在运行时获取正在执行的 Service Fabric 服务(和应用程序)版本?我已尝试过上下文,但 StatefulServiceContextStatelessServiceContext 均未提供该信息。

最佳答案

您可以使用FabricClient来获取此信息。

对于应用程序版本:

var applicationName = new Uri("fabric:/MyApp"); // or use Context.CodePackageActivationContext.ApplicationName
using (var client = new FabricClient())
{
var applications = await client.QueryManager.GetApplicationListAsync(applicationName).ConfigureAwait(false);
var version = applications[0].ApplicationTypeVersion;
}

对于服务版本 -

从服务类中:

Context.CodePackageActivationContext.GetServiceManifestVersion()

或者:

var serviceName = new Uri("fabric:/MyApp/MyService"); // or use Context.ServiceName
using (var client = new FabricClient())
{
var services = await client.QueryManager.GetServiceListAsync(applicationName, serviceName).ConfigureAwait(false);
var version = services[0].ServiceManifestVersion;
}

注释:

  • 在升级过程中,您将使用此 API 获取旧版本。如果您需要新版本,请使用 FabricClient.ApplicationManager.GetApplicationUpgradeProgressAsync 并检索 TargetApplicationTypeVersion
  • 如果您经常使用 FabricClient,您可能需要缓存它(请参阅 remarks here)
  • CodePackageActivationContext 还包含 CodePackageVersion,它与服务 list 的版本不同

关于c# - 运行时获取服务版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37512935/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com