Freigeben über


[Service Fabric] Default service descriptions must not be modified as part of an upgrade

Recently (Service Fabric SDK v 2.4.145) I had deployed a Service Fabric application to my local cluster from Visual Studio. As part of an upgrade process after I changed something in the Settings.xml file for my service, I was executing the following PowerShell code:

 

Connect-ServiceFabricCluster localhost:19000

  Copy-ServiceFabricApplicationPackage -ApplicationPackagePath '.' `

-ImageStoreConnectionString 'file:C:\SfDevCluster\Data\ImageStoreShare' -ApplicationPackagePathInImageStore 'SFConfigModified'

 Register-ServiceFabricApplicationType -ApplicationPathInImageStore 'SFConfigModified' -TimeoutSec 300

Start-ServiceFabricApplicationUpgrade `

-ApplicationName 'fabric:/SFConfigModified' `

-ApplicationTypeVersion '1.0.17' `

-Monitored `

-ForceRestart `

-FailureAction Rollback

This is when I received the following error in the PowerShell command window:

 

Registering application type…

Register application type succeeded

Start-ServiceFabricApplicationUpgrade : Default service descriptions must not be modified as

part of upgrade. Modified default service: fabric:/SFConfigModified/StatelessWebApi

At C:\Workshops\AzureSF\HelperFiles\testconfigchanged.ps1:13 char:1

+ Start-ServiceFabricApplicationUpgrade `

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidOperation: (Microsoft.Servi...usterConnection:ClusterConne

ction) [Start-ServiceFabricApplicationUpgrade], FabricException

+ FullyQualifiedErrorId : UpgradeApplicationErrorId,Microsoft.ServiceFabric.Powershell.Star

tApplicationUpgrade

 

For some reason, the upgrade thinks I have modified my ApplicationManifest.xml file in the <DefaultServices> section, although I know I did not modify it.

 

I have discovered that this issue is something that will be corrected in the near future, but how do you get this working again to be able to do updates from PowerShell?

 

Here is what I had to do to get things working again:

  1. Open Service Fabric Explorer and remove the application from the cluster.
  2. In my PS script, after the Register-ServiceFabricApplicationType command, execute the command to do a new deployment:
    New-ServiceFabricApplication -ApplicationName 'fabric:/SFConfigModified' -ApplicationTypeName 'SFConfigModifiedType' -ApplicationTypeVersion 1.0.15
  3. Comment out the New-ServiceFabricApplication line of code.

 

From this point on, I could do upgrades to my application.

Comments

  • Anonymous
    December 21, 2016
    I am not sure what were you trying to do but i also encounter this issue few days ago and i found out that the way around it for most of the default values is to run Update-ServiceFabricService -ServiceName "yourServiceName" and change the parameter you need from this command (if exist).
    • Anonymous
      December 25, 2016
      This actually has to do with a problem with Service Fabric itself. I was told this is soon to be fixed. Modifying the -ServiceName in my case was not what I wanted to do since there were not other parameters I needed to change other than the version number.