【问题标题】:Service Fabric Application deploymentService Fabric 应用程序部署
【发布时间】:2019-11-14 08:51:43
【问题描述】:

注册服务结构应用程序失败并出现错误

“在商店中找不到应用程序包“ServiceFabricApp”。请确保该程序包先前已复制到商店。如果该程序包先前已成功预配,则临时程序包可能已根据清理政策。”

更多上下文,我正在使用服务结构 API 来连接、创建/升级应用程序。 关注此文档:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-remove-applications-fabricclient#code-example

能够将应用程序包复制到本地路径一些“C:\ImageFolder”(能够验证包存在并且对该文件夹具有只读权限)。我在 ProvisionApplicationAsync 上遇到了问题。

    try
    {
        fabricClient.ApplicationManager.ProvisionApplicationAsync(packagePathInImageStore).Wait();

        Console.WriteLine("Provisioned application type {0}", packagePathInImageStore);
    }
    catch (AggregateException ae)
    {
        Console.WriteLine("Provision Application Type failed:");

        foreach (Exception ex in ae.InnerExceptions)
        {
            Console.WriteLine("HResult: {0} Message: {1}", ex.HResult, ex.Message);
        }
    }

有错误:

在商店中找不到应用程序包“ServiceFabricApp”。确保该包先前已复制到商店。如果包之前已成功预配,则可能已根据清理策略删除了临时包。

复制应用代码:

   string imageStoreConnectionString = "file:C:\ImageFolder";
   string packagePathInImageStore = "ServiceFabricApp";
   try
    {
        fabricClient.ApplicationManager.CopyApplicationPackage(imageStoreConnectionString, packagePath, packagePathInImageStore);
        Console.WriteLine("Application package copied to {0}", packagePathInImageStore);
    }
    catch (AggregateException ae)
    {
        Console.WriteLine("Application package copy to Image Store failed: ");
        foreach (Exception ex in ae.InnerExceptions)
        {
            Console.WriteLine("HResult: {0} Message: {1}", ex.HResult, ex.Message);
        }
    }

【问题讨论】:

    标签: c# azure azure-service-fabric service-fabric-stateful service-fabric-stateless


    【解决方案1】:

    必须将图像存储更改为:fabric:ImageStore

    更多详情:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-image-store-connection-string

    【讨论】: