I wanted to share this gotcha I encountered with SQL Server 2008 R2 Master Data Services. Last night I was prepping a Hyper-V machine for a presentation I am doing in 3 weeks at the Southern New England SQL Server Users Group. I decided to make the machine a domain controller because I know that I would like to use SharePoint Server 2010 in my demonstration, and SharePoint 2010 is more easily installed with Active Directory accounts then Local accounts (I highly recommend using AD domain accounts with SharePoint 2010, but it is possible to fool the system if needed).
After promoting the machine to a DC, my next step was to install SQL Server 2008 R2 and Master Data Services (MDS). This went through without a problem. However, when I opened the Configuration Manager for MDS, I encountered this error message:
Most of the blogs out there reference this error message in the context of SharePoint Server, either with Central Administration or Shared Services. However, on the Master Data Services Forum a user reported this error so I was able to understand the issue.
Essentially, MDS is not supported on a Domain Controller. I am not surprised to learn this. The nature of the problem is that the Configuration Manager wants to do 3 things at start-up:
- It wants to open the MDS web.config file at C:\Program Files\Microsoft SQL Server\Master Data Services\Web Application
- In the MDS hive (up one folder from the Web Application) it wants to confirm the existence of a Temp Folder named MDSTempDir. If it cannot find it, it wants to create it.
- It wants to connect to the MDS database using the mdsConnectionString found in web.config.
It will not be able to do any of these things if a local group named “MDS_ServiceAccounts”. If you install SQL R2 on a domain controller, this group will be created as a Domain group. Consequently, there will be no local group by that name, and your MDS Service accounts will not be added to this group correctly.
Fortunately, there is a workaround. First, identify the service accounts you wish to use and add them to the “MDS_ServiceAccounts” group. Next, grant this group Full Control to the Web Application folder. Then, create the “MDSTempDir” folder manually. Finally, edit the connection string in web.config to point to your MDS repository.