默认服务描述不能作为升级集EnableDefaultServicesUpgrade的一部分修改为true

我正在尝试通过Visual Studio升级我的服务结构应用程序

我最终不得不使用diff包方法来确保只有我更改的服务才会升级

我通过命令文件删除了不需要的文件

现在我已经走进了另一个错误,由于缺乏细节,这有点令人讨厌

Start-ServiceFabricApplicationUpgrade : Default service descriptions can not be modified as part of upgrade. Modified 2>default service: fabric:/MYAPPLICATION/MYSERVICE. To allow it, set 2>EnableDefaultServicesUpgrade to true. 

我到底在哪里放这个?

请注意,这来自Visual Studio

我很少使用Powershell获得任何乐趣

我见过[here] [1]引用了Update-ServiceFabricService CmdLet。 但没有更多关于我需要做什么的信息

我在应用程序清单中试过这个但没有快乐

      Parameters>      

保罗

首先,在我给你一个解决方案之前,我会给出一个理由……

EnableDefaultServicesUpgrade是一个标志,允许在应用程序升级期间升级默认服务描述。 设置为true时,将使用新值覆盖默认服务描述,这是为了防止意外更改将导致可能的故障或数据删除的描述。

  • 设置为false (默认值)时,它将进行检查以防止发生故障,
  • 设置为true时 ,您将承担这些更改安全的风险

例如,当您更改服务中的分区数量时,SF预测这会导致数据丢失或其他故障。

修复:

EnableDefaultServicesUpgrade是群集定义中的标志,而不是服务中的标志。 您必须在群集清单中设置此项。

您的群集清单将有一个如下所示的部分:

 ...some stuff above... { "name": "ClusterManager", "parameters": [ { "name": "EnableDefaultServicesUpgrade", "value": true }] ... some more stuf below } 

要在Azure上更改它:

您可以使用此链接中描述的门户网站“ http://resources.azure.com

本地群集上:

您从群集安装文件夹中复制clusterconfig.json ,使用以下命令将更改应用于群集升级的触发器: Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath .\clusterconfig.json

顺便说说…

你正在使用DefaultServices,你应该避免使用它,有很多关于SO的原因。