Recently we began experimenting with the deployment of the Service Manager 2012 Self-Service Portal SharePoint solution to an existing SharePoint 2010 farm. Anton Gritsenko and Travis Wright have written great blogposts on that. But while carrying on with the scenario we ran into an error applying the Service Manager masterpage. Fortunately I remembered this error from the Technet Forums.
Issue – The ID ‘DelegateControl1′ is already used by another control
This problem occurs when you apply the SMPortalPage.master to a SharePoint site. When you apply it you get a SharePoint 2010 Error message. This message is The ID ‘DelegateControl1′ is already used by another control.
Steps to reproduce
1. Follow the instructions in Anton his blogpost, I deployed them to a new Webapplication with a blank site collection (sts#1 template)
2. Activate the Site Collection feature SharePoint Server Publishing Infrastructure. Btw, in a production environment I wouldn’t do this, because this has some impact on your SharePoint environment.
3. Activite the Site feature SharePoint Server Publishing
4. Go to Master Page in the Look and Feel section which should be available now after activating both features
5. Change both Site Master Page and System Master Page from v4.master to SMPortalPage.master
First we compared the masterpage we used with the masterpage from an existing Self-Service Portal and a default v4 masterpage. It looks like the solution which we found in the c:\inetpub\wwwroot\wss\VirtualDirectories is an old one. It has some wrong id’s in them. Hopefully more details on that later.
Service Manager 2012 RC (version 7.5.1464.0)
The workaround is to replace the wrong id’s from ContentPlaceHolders and Controls with the right ones. Below is a cheatsheet if you want to repair your existing masterpage. If you fixed it you can upload it in the masterpage gallery and publish and approve it. Another option is to download a copy from an existing working SCSM environment and upload that one.
Btw, credits for this workaround go to my colleague Sander who really helped me in fixing this.