While building some recent SharePoint 2013 Servers, I hit a few issues relating to the Workflow Manager Service installation. The Servers are running Server 2012 R2 and as such no matter what order I selected the components for installation it would always fail and some pieces would install and others would not. After playing for a while, I decided that the only way of doing this would be to perform a manual installation and not use the “wpilauncher“. This is done by using the same tool but from a command line instead.
The order is very simple you need to download in this order:
- Service Bus 1.0
- Service Bus 1.0 Cumulative Update (KB2799752)
- Workflow Client
- Workflow Manager Refresh
The command line approach is very simple, it uses the followong syntax:
Webpicmd /offline /Products:”Product Name” /Path:”Path Location”
To download the components above you can use the following commands, I am using the following location: “G:\Components\Workflow\” to download into.
Webpicmd /offline /Products:ServiceBus /Path: G:\Components\Workflow\ServiceBus
Webpicmd /offline /Products:WorkflowClient /Path: G:\Components\Workflow\Client
Webpicmd /offline /Products:WorkflowManagerRefresh /Path: G:\Components\Workflow\Manager
Make sure you download the Service Bus 1.0 Cumulative Update using the link above and place in the same location. My folder structure looks like this:
Now to perform the installation you need to use the following command:
WebpiCmd.exe /Install /Products:Product to Install /XML:XML Definition Location /AcceptEula /SuppressPostFinish
This syntax will allow each component to be installed using the command line in the correct order. The following are sample commands you can run:
WebpiCmd.exe /Install /Products:ServiceBus /XML: G:\Components\Workflow\ServiceBus\feeds\latest\webproductlist.xml /AcceptEula /SuppressPostFinish
WebpiCmd.exe /Install /Products:WorkflowClient /XML: G:\Components\Workflow\Client\feeds\latest\webproductlist.xml /AcceptEula /SuppressPostFinish
WebpiCmd.exe /Install /Products:WorkflowManagerRefresh /XML: G:\Components\Workflow\Manager\feeds\latest\webproductlist.xml /AcceptEula /SuppressPostFinish
Once you have ran the commands, everything will be installed and working. You can then either use the standard Application Wizard to set it up, or PowerShell. I would encourage you to use PowerShell, which is much easier and needed if you want to repeat the process easily.
PowerShell: If you wish to use PowerShell instead of “old skool” command line, then simply use this syntax:
Start-Process -FilePath “Path to WebpiCmd” -ArgumentList “/Install /Products:”Product to Install” /XML:”XML Definition Location” /AcceptEula /SuppressPostFinish” -Wait –PassThru
An example would be:
Start-Process -FilePath “C:\Program Files\Microsoft\Web Platform Installer\WebpiCmd.exe” -ArgumentList “/Install /Products:ServiceBus /XML: G:\Components\Workflow\ServiceBus\feeds\latest\webproductlist.xml /AcceptEula /SuppressPostFinish” -Wait –PassThru
Now outside of this once all this was installed I had various issues connecting a second server to the Workflow Farm. You can see this when you run the wizard for the new servers you wish to add and upon validation you see port blocking errors similar to this:
The first places to check would be the Windows Firewall rules to make sure the rules that were supposed to be created actually got created. They should be the following:
Even if the Windows Firewall is not running (which of course won’t be the issue) you should have these rules generated and added. Next check that the services on the primary server (first one created) are actually running. I found that the “Service Bus Message Broker” was not running at all. Resolving this is needed either way. Check the following services are all running:
- Service Bus Gateway
- Service Bus Message Broker
- Windows Fabric Host Service
If any of these are not running, start them, you may need to reboot the server to have them start cleanly. So if that doesn’t fix it then you need to look at traffic between the servers you are trying to connect to. For my instance I was working with, it was firewalls blocking the communication between the two servers. The following rules needed to be added to allow the traffic:
- Allow Port 9355 HTTPS
- Allow Port 9354 TCP
- Allow Port 9356 TCP
- Allow Ports 900 to 9004 TCP
Once these changes were made, the wizard re-validation process still failed. So far I had checked all the network connectivity, services and what I thought was everything. So what I decided to do was run the wizard for removing the server from a Workflow Farm. I was quite amazed that it offered me the ability to do that, so at some point it had connected itself only for the Service Bus components to the farm.
After running that wizard, it completed successfully saying it had removed the current server from the Service Bus Farm. Re-running the “Join to Farm” wizard then successfully validate the connections as needed.
The wizard then ran and failed again, based on the “Service Bus Message Broker” service not being able to start. I still don’t have it working 100% yet due to the service just not starting at all, but I am now further along than I was a while ago. When I get it working 100% I will post an update.