visual-studioazure-service-fabric

service fabric local cluster setup error


Following link below to set-up and run local cluster.

https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-create-your-first-application-in-visual-studio

Currently when running the application, it errors out setting up local cluster.

Dev environment:
Windows 10, Visual Studio 2017 trial, Docker for Windows (Although not used)

PowerShell script execution has been enabled and visual studio was run as administrator.

Error message: The PowerShell script failed to execute. See the Output window for details.

Output Window:

1>------ Build started: Project: MyApplication, Configuration: Debug x64 ------
2>------ Deploy started: Project: MyApplication, Configuration: Debug x64 ------
2>Started executing script 'GetApplicationExistence'.
2>Finished executing script 'GetApplicationExistence'.
2>Time elapsed: 00:00:02.1304224
2>Started executing script 'Set-LocalClusterReady'.
2>powershell -NonInteractive -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command "Import-Module 'C:\Program Files\Microsoft SDKs\Service Fabric\Tools\Scripts\DefaultLocalClusterSetup.psm1'; Set-LocalClusterReady -createOneNodeCluster $true"
2>--------------------------------------------
2>Local Service Fabric Cluster is not setup...
2>Please wait while we setup the Local Service Fabric Cluster. This may take few minutes...
2>Stop-Service : Cannot find any service with service name 'FabricHostSvc'.
2>At C:\Program Files\Microsoft SDKs\Service Fabric\Tools\Scripts\ClusterSetupUtilities.psm1:144 char:5
2>+ Stop-Service FabricHostSvc -WarningAction SilentlyContinue
2>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2> + CategoryInfo : ObjectNotFound: (FabricHostSvc:String) [Stop-Service], ServiceCommandException
2> + FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.StopServiceCommand
2>
2>WARNING: System.Management.Automation.CommandNotFoundException: The term 'Remove-ServiceFabricNodeConfiguration' is not
2> recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if
2>a path was included, verify that the path is correct and try again.
2>
2> at System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception
2>exception)
2>
2> at System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame)
2>
2> at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2>
2> at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2>WARNING: Remove-ServiceFabricNodeConfiguration throws exceptions
2>
2>Using Cluster Data Root: C:\SfDevCluster\Data
2>Using Cluster Log Root: C:\SfDevCluster\Log
2>
2>The generated json path is C:\Users[username]\AppData\Local\Temp\tmp5D74.tmp.json
2>Processing and validating cluster config.
2>Failed to open base key for machine ComputerFullName to check if machine is IOT Core.
2>Test-ServiceFabricClusterManifest : The term 'Test-ServiceFabricClusterManifest' is not recognized as the name of a
2>cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify
2>that the path is correct and try again.
2>At C:\Program Files\Microsoft SDKs\Service Fabric\Tools\Scripts\ClusterSetupUtilities.psm1:504 char:5
2>+ Test-ServiceFabricClusterManifest -ClusterManifestPath "$manifest ...
2>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2> + CategoryInfo : ObjectNotFound: (Test-ServiceFabricClusterManifest:String) [], CommandNotFoundException
2> + FullyQualifiedErrorId : CommandNotFoundException
2>
2>PrepareClusterManifest : Could not validate cluster manifest
2>'C:\Users[username]\AppData\Local\Temp\LAP000338-Server-ScaleMin.xml'
2>At C:\Program Files\Microsoft SDKs\Service Fabric\Tools\Scripts\ClusterSetupUtilities.psm1:530 char:21
2>+ ... ifestFile = PrepareClusterManifest $manifestFileTemplate $imageStoreC ...
2>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2> + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
2> + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,PrepareClusterManifest
2>
2>ScriptHalted
2>At C:\Program Files\Microsoft SDKs\Service Fabric\Tools\Scripts\ClusterSetupUtilities.psm1:508 char:9
2>+ throw
2>+ ~~~~~
2> + CategoryInfo : OperationStopped: (:) [], RuntimeException
2> + FullyQualifiedErrorId : ScriptHalted
2>
2>Finished executing script 'Set-LocalClusterReady'.
2>Time elapsed: 00:00:10.9335415
2>The PowerShell script failed to execute.
========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========

Solution

  • To get to the point first, it was the installer issue. When I was installing the Service Fabric SDK, something happened during the installation, let's say network error or installation was not complete however I somehow missed it, human error.

    I am not sure how I missed it but the point is, I tried to uninstall and reinstall the SDK a few times just in case to make sure SDK was installed completely. And the problem was, the initial incorrect installation done was lingering throughout this whole process because there were directories and files not completely removed by uninstallation, such as registry keys.

    After I manually delete registry keys and directories and reinstalled the SDK and now everything seems fine.

    To help anyone having similar issue, edited instruction below. Original article of the instruction in (https://github.com/Azure/service-fabric-issues/issues/566)

    1. Uninstall Microsoft Service Fabric SDK.
    2. Uninstall Service Fabric tools using the Visual Studio Installer.
    3. Delete folder: C:\Program Files\Microsoft Service Fabric
    4. Delete folder from registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Service Fabric
    5. Reboot PC
    6. Download Microsoft Web PI (https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started) install the Microsoft Azure Service Fabric SDK. Btw. after I've deleted registry entries of SF, I've noticed that Web PI has finally installed three needed components (not only Azure Service Fabric SDK as it was for previous re-installations):
      Microsoft Visual C++ 2012 SP1 Redistributable Package (x64)
      Microsoft Azure Service Fabric Runtime - 6.3.162
      Microsoft Azure Service Fabric SDK - 3.2.162
    
    7. Install Service Fabric tools using the Visual Studio Installer.
    8. Create test project in Visual Studio 2017 and run it. Visual Studio created cluster automatically.
    

    P.S. After following the steps and if you still can't install Azure Service Fabric Runtime, it could be remaining in "Add or Remove Programs" list, then delete registry key manually: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ServiceFabric (or is it "Service Fabric" with space..?)