Windows Server Appfabric: Installation error SharePoint 2016

If you are installing SharePoint 2016 Prerequisites manually downloading the files and after that run the “Install Software Prerequisites” from SharePoint 2016 installation file to verify everything installed manually is correct, you may face error like this

“Windows Server Appfabric: Installation error“.


This is a generic MSI error message and does not give any indication about how to get the issue fixed. Uninstall or reinstalling only makes it worse.

Resolution :

The reason being the prerequisites installs the file and configure it automatically. If we install manually, then we are trying to bypass the configuration, so that error will be received.

The issue can be caused due to the following:

  •  The path to the PowerShell executable that is needed for the AppFabric installation is incorrect.
  •  In some scenarios, repeated uninstallation and re-installation does not fix the issue. This is because the installer does not remove the PSModulePath entry in Environment

  •  Variables during uninstallation and the installation fails because the entry already exists.
    If you are trying to install all the prerequisites manually as the server does not have a connection to internet.


Appfabric installation and configuration has to be done by the prerequisite installer ONLY and not in a stand-alone manner.You should follow the manual process of installation  if there is error in automatic process by following Install Prerequisite (prerequisiteinstaller.exe) .

You can implement any one of the two solutions listed below

Solution 1

Append the following path to PSModulePath entry in the environment variables – %SYSTEMROOT%\System32\WindowsPowerShell\v1.0

  • Go to My Computer, right-click Properties
  • On the System page click Advanced System Settings on the left-side pane.
  • If you receive a UAC prompt, click on Yes to launch the System Properties dialog box
  • From the Advanced tab, click Environment Variables
  • Within the System Variables section in the lower half, select PSModulePath and click on Edit (or double-click PSModulePath‘)
  • Append the following path to PSModulePath entry in the environment variables
  • Ensure that the PSModulePath entry looks like this:
    C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;c:\Program Files\AppFabric 1.1 for Windows Server\PowershellModules

Solution 2

  • There are chances that other applications might be referencing the same variable and may fail if it is deleted. This is what we can do if solution 1 does not help.
  • Remove the PSModulePath entry from the ‘Environment Variables’ and re-run the installer. Once it completes successfully, ensure that the PSModulePath entry looks the same as mentioned in solution 1.

Reference :


Cannot connect to database master at SQL Server at server_name. The database might not exist, or the current user does not have permission to connect to it Error SharePoint 2016

Cannot connect to database master at SQL Server at server_name. The database might not exist, or the current user does not have permission to connect to


“Cannot connect to database master at SQL Server at server_name. The database might not exist, or the current user does not have permission to connect to it” 



Open the Windows Firewall with Advanced Services and add an inbound rule to allow traffic over port 1433.

amazon   amazonsp2016  amazonsp2016_2


Failed to create configuration database exception SharePoint 2016

Error :

There was an error while running Install Prerequisite (prerequisiteinstaller.exe)  “Failed to create configuration database. An exception of type Microsoft.SharePoint.Upgrade.SPUpgradeException was thrown. Additional exception information: One or more types failed to load. Please refer to the upgrade log for more details.



you may face this issue while installing manually instead of using the prerequisiteinstaller.exe

Uninstall WcfDataServices and then reinstalling the WcfDataServices using the prequisiteinstaller.exe automatically or using command with the appropriate parameter.

prerequisiteinstaller.exe /wcfdataservices56: WcfDataServices.exe location

Then delete two databases from SQL Server which are created by previous psconfiguration and run Products Configuration Wizard again, it will be successful.

amazon  amazonsp2016  amazonsp2016_2


Program can’t start because api-ms-win-crt-heap-l1-1-0.dll is missing SharePoint2016

This program can’t start because api-ms-win-crt-heap-l1-1-0.dll is missing from your computer.” error while running SharePoint Products Configuration Wizard.


*Missing update patches “Windows 10 Universal Runtime update” for Windows Server 2012 R2.

  • Installation of Windows Server 2012 R2 patch KB299926 is required so as to resolve this issue.

But  “The update is not applicable to your computer.” error came after that as below.


This is because Windows 10 Universal C Runtime KB2999226 is dependent on a Windows Server 2012 R2 Cumulative Update package in KB2919355.

Check windows updates, install patch KB2919355 and “The update is not applicable to your computer.”error will be resolved and after which there will be no error in installation of  the Windows 10 Universal C Runtime.

Have a look into my previous post Install Prerequisite (prerequisiteinstaller.exe) SharePoint 2016.

Unable to install Microsoft Information Protection and control Client 2.1 error SharePoint 2016


Unable to install Microsoft Information Protection and control Client 2.1 error SharePoint 2016

Hi Everyone.

The waiting came to an end and started working with the most recent version of SharePoint.It’s very exciting to work with newer version SharePoint 2016 .

We started with the installation of SharePoint 2016 and faced one issue in the first step .

When I run the Install Prerequisite (prerequisiteinstaller.exe), the “There was an error during installation.Unable to install Microsoft Information Protection and control Client 2.1” error appears as below.

Unable to install Microsoft Information Protection and control Client Error SharePoint 2016

This means that there is error in downloading automatically and this needs to be downloaded and installed manually.

You can click on the links to download directly.

Application Server Role, Web Server (IIS) Role
Microsoft SQL Server 2012 SP1 Native Client
Microsoft ODBC Driver 11 for SQL Server
Microsoft Sync Framework Runtime v1.0 SP1 (x64)
Windows Server AppFabric 1.1
Windows Identity Foundation (KB974405)
Microsoft Information Protection and Control Client 2.1
Microsoft WCF Data Services 5.6
Microsoft .NET Framework 4.6
Cumulative Update Package 7 for Microsoft AppFabric 1.1 for Windows Server (KB 3092423)
Visual C++ Redistributable Package for Visual Studio 2012
Visual C++ Redistributable Package for Visual Studio 2015

Install all above prerequisites manually  which shown installation error and run the install Prerequisite again, it shows Install Completely.


This SQLServer instance does not have the required “max degree of parallelism” setting of 1

I have got this error while trying to install SharePoint 2013

max degree of parallelism

What is Max Degree of Parallelism ?
When an instance of SQL Server runs on a computer that has more than one microprocessor or CPU, it detects the best degree of parallelism, that is, the number of processors employed to run a single statement, for each parallel plan execution. You can use the max degree of parallelism option to limit the number of processors to use in parallel plan execution. SQL Server considers parallel execution plans for queries, index data definition language (DDL) operations, and static and keyset-driven cursor population.
Read this for more details

How to fix it ?

  1. Open Microsoft SQL Server Management Studio
  2. Login with sysadmin user
  3. Right Click on instance name and select properties >> Advanced
  4. Change Max Degree of Parallelism to 1
  5. Restart the SQL Service

Installing Workflow Manager Offline

Microsoft has introduced new Workflow engine and concept with SharePoint 2013 called Workflow Manager.

The SharePoint 2013 Workflow platform uses the new Workflow Manager service. Workflow Manager is built on top of Windows Workflow Foundation. Windows Workflow Foundation is part of the .NET Framework 4.5.

Workflow Manager is a separate download and must be configured to communicate with the SharePoint Server 2013 farm.

In several cases your environment is secured and not accessing the internet and you want to install the workflow manager so in the following steps I am going to explain how to do that so you can install Workflow Manager offline to server(s) not connected to the internet.

  • Download the web platform installer and install it on a machine with internet access

  • Run the following commands as administrator from command prompt on the machine with internet access to download Service Bus, Workflow Client and Workflow Manager Refresh for offline

Webpicmd /offline /Products:ServiceBus /Path:E:ServiceBus

Webpicmd /offline /Products:WorkflowClient /Path:E:WorkflowClient

Webpicmd /offline /Products:WorkflowManagerRefresh /Path:E:WorkflowManagerRefresh


Note: modify E: with the path you would like to download to

  • On the machine with internet access, download the Cumulative Update for Service Bus 1.0 from:

  • Copy the downloaded file from Step 1, 2 and 3 to the server(s) where you will install the Workflow Manager.
  • On each server where you will install workflow manager run and install the following
  • Open command prompt as administrator and run the following:

WebpiCmd.exe /Install /Products:ServiceBus /XML:E:ServiceBusfeedslatestwebproductlist.xml

  • Manually install the file you downloaded from step 3
  • Open command prompt as administrator and run the following:

WebpiCmd.exe /Install /Products:WorkflowClient /XML:E:WorkflowClientfeedslatestwebproductlist.xml

  • Open command prompt as administrator and run the following:

WebpiCmd.exe /Install /Products:WorkflowManagerRefresh /XML:E:WorkflowManagerRefreshfeedslatestwebproductlist.xml

Note: modify E: with the path where files you copied from previous steps exist.

The next step is to configure the Workflow Manager Farm and connect it with SharePoint to do so check the following article from MSDN


“The license state for the current server doesn’t match the farm’s license state”– SharePoint PSConfig Error

Recently I have involved in an interesting troubleshooting issue. There are many blog posts and TechNet discussions about this error. Thought that to post it here about my experience.

Here is the scenario. Customer has two Windows 2008 R2 Std machines (lets call it as srvsp1 & srvsp2) installed and configured with the following products.

  1. SharePoint Server 2010 Enterprise Edition
  2. Office Web Apps

Recently we have patched those two servers , for some troubleshooting one of the servers (srvsp2) was disconnected from the farm. After completing the installation while trying to add the server back to the farm by running the PSConfig we got the below error,

The license state for the current server doesn’t match the farm’s license state.
System.InvalidOperationException: The current server cannot be joined to this farm because the set of installed products does not match the products installed in the farm.

The license state for the current server doesn’t match the farm’s license state.
at Microsoft.SharePoint.Administration.SPFarm.Join()
at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.CreateOrConnectConfigDb()
at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.Run()
at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()

Here are the troubleshooting steps.

# Step 1

Verify the configuration database has correct entries of all installed products. For that , we ran the following query against the “Objects” table of SharePoint configuration database.

Select * from Objects with (nolock) where properties like ‘%icrosoft.SharePoint.Administration.SPInstallState%’

From the result copy the “Properties” column value to notepad or any xml editor tool, in my case I have used Visual Studio.


Values that we are interested the ones highlighted in the below screenshot. Same is given below.



# Step 2

Once we get those GUIDs, next step is make sure that any difference in the actual Physical SharePoint server’s installed products and configuration database.

To do that, check the below registry location in both the SharePoint Servers (srvsp1 & srvsp2).

HKEY_LOCAL_MACHINESOFTWAREMicrosoftShared ToolsWeb Server Extensions14.0WSSInstalledProducts


{90140000-1014-0000-1000-0000000FF1CE} REG_SZ BEED1F75-C398-4447-AEF1-E66E1F0DF91E
{90140000-110D-0000-1000-0000000FF1CE} REG_SZ D5595F62-449B-4061-B0B2-0CBAD410BB51
{90140000-112D-0000-1000-0000000FF1CE} REG_SZ 926E4E17-087B-47D1-8BD7-91A394BC6196

Here we can clearly see that the physical box has 3 entries whereas the configuration database has only 2 of them.

More details of the GUIDs are given below.

BEED1F75-C398-4447-AEF1-E66E1F0DF91E is for “SharePoint Foundation 2010”,

D5595F62-449B-4061-B0B2-0CBAD410BB51 is for “SharePoint Server 2010 Enterprise”

926E4E17-087B-47D1-8BD7-91A394BC6196 is for “Office Web Companions 2010″ (Office Web Apps)

(Just FYI, for more information all different product SKUs and it’s GUIDs please refer this article )

In our case, the Configuration database should have had 3 entries to match the registry in a normal farm. For some reason it was not updated with the office web apps production installation , it may caused by an installation issue.


Run the following Power Shell commandlet on any working server in the farm. In our case it was srvsp1, the reason we would need to run from this server is because the problem server – srvsp2 is still not in the farm.

Set-SPFarmConfig –InstalledProductsRefresh

This will pick the entries from the server and reset the entries in the Config DB. 

To double-check, you can run the same SQL query mentioned above and confirm the values.

Hope this will helpful while troubleshooting this specific issue related to SharePoint. There are different scenarios as well, eg: configuration database may have the values but it was not there in the physical server’s registry. To fix that you may end up with uninstall and install the product to update it correctly.


Considerations while provisioning the service application using pre-created databases”there is already a database exists with the same name”

* Recently I had worked with my customer to setup a new SharePoint farm with pre-created (DBA created) databases.

Concept and prerequisites are very well documented inthis TechNet article. While testing the deployment what really matters were the creation of couple of service application. 

* Bad guys were Usage Logging & State Service Application. All other service applications were easy to provision (we were using auto AutoSPInstaller  to automate the deployment using Power Shell).

* Except Usage Logging & State Service application all other service applications were able to use the pre-created database while provisioning the new service application using New-SP* commandlets. 

* Usage Logging & State Service applications were complaining that the there is already a database exists with the same name

* To work-around this, we have to approach the provision in a different way. I’m giving the provisioning script samples for both Usage Logging & State Service Applications.

Usage Logging Service Application :

Steps are explaining below.

1. Create new Usage Service Application with a temporary ( or default) database

2. After that, modify the Usage Service Application to use the pre-created database name, this will dismount the usage logging database created in step #1

3. Delete the database created in step #1 manually from the SQL server

Automating the Steps 1-2 given below.

add-pssnapin microsoft.sharepoint.powershell

Write-Host -ForegroundColor White "Provisioning WSS Usage Application..."

$SPUsageApplicationName = "WSS Usage Service Application"
$precreatedUsageDB = "WSS_Usage_Database"
$sqlserver = "spsql"
$tempUsageDB = "WSS_Usage_ToDelete"

New-SPUsageApplication -Name $SPUsageApplicationName -DatabaseName $tempUsageDB

$UsageServiceApp = Get-SPUsageApplication $SPUsageApplicationName

Set-SPUsageApplication -Identity $UsageServiceApp.ID -DatabaseName $precreatedUsageDB -DatabaseServer $sqlserver

Write-Host -ForegroundColor White "Re-provisioning Health Data Collection Proxy as by default it will be in stopped state"

$SPUsageApplicationProxy = Get-SPServiceApplicationProxy | where {$_.DisplayName -eq $SPUsageApplicationName }

Write-Host -ForegroundColor Blue "Done provisioning SP Usage Application."

State Service Application :

This is little different than Usage Logging Service Application provisioning.

Steps are explaining below.

1. First we have to mount the pre-created database to SharePoint and have to initialize it.

2. Use the same method as other service application provisioning, using New-SPStateServiceApplication and provide the pre-created database name.

3. Create state service application proxy.

add-pssnapin microsoft.sharepoint.powershell

$StateServiceDB = "State_Service_DB"
$StateServiceName = "State Service Application"
$StateServiceProxyName = "State Service Application Proxy"

Write-Host -ForegroundColor White "Provisioning State Service Application..."

Mount-SPStateServiceDatabase -Name $StateServiceDB | Initialize-SPStateServiceDatabase

New-SPStateServiceApplication -Name $StateServiceName -Database $StateServiceDB | Out-Null

Write-Host -ForegroundColor White "Creating State Service Application Proxy..."

$StateServiceApplication = Get-SPStateServiceApplication -identity  $StateServiceName

$StateServiceApplication | New-SPStateServiceApplicationProxy -Name $StateServiceProxyName -DefaultProxyGroup

Write-Host -ForegroundColor Blue " - Done creating State Service Application."

Other service applications can be pointed in this scenario are

1. ASP.NET Session state service (Enable-SPSessionStateService). With that there is no way to specify a pre-created database , 

    ASP.NET session state database schema is provisioned by ASP.NET by calling SQLServices class. once you use Enable-SPSessionStateService.

From my deployment experience this was the main issue and there was no any other deployment issues faced while going with the DBA pre-created deployment method. Hope this hint will help someone.


Install & Configure SharePoint 2013 with SQL Client Alias

* Though this topic is very simple and highly recommended approach in the enterprise deployments, I have seen many deployments which are not following this approach. E.g.: Using SQL client alias for SharePoint installations will be really useful if you want move all databases to another SQL Server by just making alias change point to the new SQL server.

* In this post I’m going to cover how we can install & configure SharePoint 2013 Preview with SQL Client Alias. Though this post is talking about SharePoint 2013 preview, the underlying concept will be same for SharePoint 2010 & SharePoint 2013 RTM.

* In my test lab, I have total four virtual machines configured. This post is based on a SharePoint small server farm for setup and proof of concept. I will refer to this same environment in my future blog posts, there will be more servers adding to the existing server farm.

litdc : is the domain controller and AD server (domain : litware.local), this machine is installed with Windows 2008 R2 + SP1

litsql1 : is the SQL server machine which is installed with SQL Server 2012 RTM with Windows 2012 Server Release Candidate.

litsp1 : is the one of the SharePoint Servers, I’m configuring this server with WFE role. This server is installed with SharePoint Server 2013 Preview with Windows 2012 Server Release Candidate.

litsp3 : is the one of the SharePoint Servers, I’m configuring this server with Application role (central administration and other services). This server is installed with SharePoint Server 2013 Preview with Windows 2012 Server Release Candidate. Name of the server is litsp3 as I’m planning to add one more SharePoint Server litsp2 to with WFE layer later. 

In this post I’m only concentrating on the part of configuring SharePoint Servers with SQL Client Alias.

# Step 1

To harden the security for SQL server it is highly recommend to install SQL Server with named instance with custom port and block all default SQL specific ports. So, that is our first step to consider while setting up the SQL Server.

While installing the SQL Server in litsql1 server I have installed it with named instance “litsql1sql1”.

* After the installation of SQL Server with named instance, we have to assign a custom static port number for the SQL Service. You can do this in “SQL Server Configuration Manager”. 

* We have to configure it by taking the TCP/IP properties of “Protocols for SQL1 (SQL1 instance name)”. By default, whenever we install SQL Server with named instance it will assign a “TCP Dynamic Port”, we have to clear it out in the same location (just before TCP Port).

After doing the above step, we have to restart the “SQL Server Service” to use the newly assigned port.

To confirm the usage of the new port, you can either look at the SQL Server Logs in the SQL Server Managements studio or can look at the windows application event logs directly.

# Step 2

Once the above port validation is over the next important step is  open the custom port for In bound connections if you have firewall enabled. Just need to create a new Inbound Rule for allowing connections for the custom port, in my case it is  “65000”

# Step 3

Alright, now we can go to SharePoint side. 

* In my case there are two SharePoint Servers to be configured, one WFE – litsp1 and one Application Server – litsp3.

* Since I’m going to host central administration in litsp3

* I’m going to configure this server first. Main configuration needs only before running the PSConfig. * I have installed SharePoint 2013 Preview in both of these servers initially.

Before running the PSConfig , we have to configure the SQL Client Alias. There will be two versions of cliconfig in 64 bit operating system.

C:WindowsSystem32cliconfg.exe  – 64 bit version of cliconfig.exe

C:WindowsSysWOW64cliconfig.exe – 32 bit version of cliconfig.exe

SharePoint 2010 & 2013 are 64 based so we have to configure the 64 bit version of cliconfig.


* In my test case I have created alias “spsql” with network library type “TCP/IP” (don’t use named pipes).
* In the Server Name textbox we have to give the SQL Server name (litsql1) and then uncheck the “Dynamically determine port” option and give the custom port number, in my case “65000”. After saving the changes you can validate the registry settings to make sure that it is applied correctly.

# Step 4

* At this point we are good to run SharePoint PSConfig and provision a new server farm.

* While creating a new farm, provide the SQL Client Alias “spsql” instead of the the SQL Server Instance name “litsql1sql1”.

* After finishing the PSCofig tasks, central administration site will be provisioned the SQL Server name will be used as “spsql”. 
* To connect other servers to the SharePoint farm we have to repeat step #3 in all servers. In my test lab I have one more server to be added to the same farm.