【问题标题】:Upgrade Service Fabric Application升级 Service Fabric 应用程序
【发布时间】:2016-07-26 14:32:27
【问题描述】:

有没有办法只将修改后的文件复制到 Service Fabric。 我有一个包含 ASP 的 Service Fabric 应用程序。 Net 5 应用程序即服务。每当我对我的 ASP 中的 JavaScript 文件进行更改时。 Net 5 服务,每次我都需要复制整个服务结构应用程序包。是否有允许仅复制修改后的文件的命令?

【问题讨论】:

  • Differential packaging的可能重复
  • 复制到哪里?到集群的哪台机器?其余的将如何更新?拥有 fabric 的意义在于,只需复制包,即可自动部署/升级/召回应用程序。您可以使用a differential package 仅部署差异。容器也是如此
  • 感谢您的快速回复。我想知道是否可以选择仅将修改后的文件复制到服务的代码文件夹中。
  • 您误解了 Service Fabric 是什么。它不是 IIS 的托管替代方案,而是 Docker 的托管替代方案。您将部署到哪个代码文件夹?在集群中的机器 A、B 或 F 上?您将如何将更改复制到其余机器?您所描述的即使在网络农场中也无法完成 - 如果您直接修改一台服务器上的文件,您的一些用户将获得旧行为和一些新行为

标签: azure azure-service-fabric


【解决方案1】:

实现此目的的最佳方法是使用差异打包和应用升级。有关更多信息,请参阅此链接:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-application-upgrade-advanced/。 Diff 打包允许您定义仅包含您希望升级的包部分的应用程序包。但是,它仅适用于应用程序包的组件,例如服务或代码包。您不能在文件级别创建差异包。因此,如果您只更改了代码包中的一个文件,则必须将该文件与属于该代码包的所有其他文件一起包含在内。您不能只包含已更改的单个文件。但是差异打包的好处是您只需要包含该单个代码包。您不需要提供其他服务的代码包,例如,假设它们没有被更改。

【讨论】:

    【解决方案2】:

    Service Fabric SDK 2.5 引入了一个名为“刷新应用程序”的预览功能。 使用此功能,您可以更快地获得代码更改的反馈。

    要启用它,请从项目属性中设置以下内容 应用程序调试模式 = 刷新应用程序。

    更多细节和限制可以在这里找到: https://sharepointforum.org/threads/speed-up-service-fabric-development-with-the-new-refresh-application-debug-mode.111162/

    【讨论】:

      【解决方案3】:

      在 Fabric Explorer 中,您需要找到运行 Web 应用程序的节点。我的情况是_Node_0

      根据 SF SDK 设计,本地 SF 发布文件位于 C:\SfDevCluster\Data_App\ 下。在我的环境中,网站文件路径是 C:\SfDevCluster\Data_App_Node_0\Application1Type_App1\Web1Pkg.Code.1.0.0\wwwroot\

      所以您也可以在以下路径下找到您的 HTML、CSS、JS 和其他静态资源:C:\SfDevCluster\Data_App[node_id][application_type_and_instance_name][service_type_and_version]\

      您可以只修改此文件夹中的文件,然后更改将立即应用到您的本地测试网络浏览器。请注意,如果您的服务由运行在多个节点上的微服务托管,您可能需要修改所有节点文件,因为负载均衡器可能会随机访问任何文件夹文件。

      【讨论】:

        猜你喜欢
        • 2023-04-04
        • 2019-01-10
        • 2019-05-09
        • 1970-01-01
        • 2021-06-18
        • 1970-01-01
        • 2019-01-17
        • 2018-11-14
        • 2019-05-08
        相关资源
        最近更新 更多