Troubleshooting ServiceBus installation (1): Help, WindowsFabric is missing!

Today I had a weird and frustrating situation with the Microsoft ServiceBus and Workflow Manager installation at one of my customers. There was no way I could configure ServiceBus, and the log was throwing a bunch of errors that I couldn’t really figure out (NullReferenceException and  co.). So I decided the best thing would be to uninstall the ServiceBus from the scratch.

Issue #1: Windows Fabric not working

ServiceBus would not install, nor uninstall, since WindowsFabric service was, for some reason, not working.  I guess the reason for that was one well known blog post which is suggesting to uninstall WindowsFabric before uninstalling ServiceBus. DON’T EVER DO THAT.

Each install/uninstall/join operation on the ServiceBus will otherwise end up with the error:

[Error] [13.05.2013 10:33:57]: System.Management.Automation.CmdletInvocationException: 
Service FabricHostSvc was not found on computer '.'. 
---> System.InvalidOperationException: Service FabricHostSvc was not found on computer '.'. ---> System.ComponentModel.Win32Exception: 
The specified service does not exist as an installed service
   --- End of inner exception stack trace ---
   at System.ServiceProcess.ServiceController.GenerateNames()
   at System.ServiceProcess.ServiceController.get_ServiceName()
   at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
   at System.ServiceProcess.ServiceController.get_ServiceHandle()
   at Microsoft.ServiceBus.Commands.Common.SecurityHelper.GrantUserServiceRestartPrivilege(String serviceName, SecurityIdentifier securityIdentifier)
   at Microsoft.ServiceBus.Commands.AddSBHost.ProcessRecordImplementation()
   at Microsoft.ServiceBus.Commands.ServiceBusBaseCmdlet.ProcessRecord()
   at System.Management.Automation.CommandProcessor.ProcessRecord()
   --- End of inner exception stack trace ---
   at System.Management.Automation.PowerShell.EndInvoke(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.ConfigWizard.CommandletHelper.InvokePowershell(Command command, Action`3 updateProgress)
   at Microsoft.ServiceBus.ConfigWizard.ProgressPageViewModel.AddSBNode(FarmCreationModel model, Boolean isFirstCommand)

Well, if the damage has already been done, this is what you can do.

What you need to do, is to separately install the WindowsFabric package. But, that is not that straight forward as one might think. You need to get an offline copy of the WindowsFabric.

Run this command in the command prompt:

WebpiCmd.exe /offline /products:WindowsFabric /Path:c:tempOfflineCache

and Platform Installer will try to get the WindowsFabric offline, in the folder “C:tempOfflineCache”. Now, it will break, since it can’t find some windowsazure.jpg icon. I don’t want to comment on that one.

To resolve the issue, navigate to the folder “C:tempOfflineCachefeedslatestoriginalfeeds”, and open in editor the file “webproductlist.xml”. Replace all instances of the file “http://iis-webstack/test/windowsazureinstaller/beta/windowsazure.jpg” with any windowsazure.jpg on any web server. You can use “”, that will work.

Now, with the changed webproductlist.xml, get the files again, directing the files list to the new file:

webpicmd.exe /offline /products:WindowsFabric /Path:c:tempWindowsFabricInstaller /xml:file:///C:tempOfflineCachefeedslatestoriginalfeedswebproductlist.xml

This will get the WindowsFabric installer files in the c:tempWindowsFabricInstaller folder. It will again break on something, but doesn’t matter, since the most important file, “WindowsFabric.msi” is downloaded, and can be found in one of the subfolders of the “C:tempWindowsFabricInstallerinstallersWindowsFabric” folder.

Install it, and that should do, ServiceBus can be installed and deinstalled now Smile