Wednesday, July 16, 2014

Three tier #projectserver and custom project site creation failure

Scenario:
1x WFE
1x APP
1x SQL

Web Front End Service on WFE
Project Server enabled on APP

so a traditional 3tier scenario.  nothing complicated

When deploying new Web features to the Farm, you are unable to create a Project Site based on a custom template.

Error:
Microsoft.SharePoint.SPException: The site template requires that the Feature {17843394-988a-4a4e-9d5e-8b419bdc1340} be installed in the farm or site collection

Now we know this IS enabled at the SC level.  Only un-installing these features enables the site provisioning to successfully complete.  Redeploying and enabling these features then breaks it again

Cause:
Well... it turns out the features are required on the server where Project Server is enabled.
as these are site features, that means you have two options
1) enable the Web Front end service on the App Server - which seems like a crazy thing to do to me
2) copy the features from /15/Template/Features from WFE to APP - again, mad mad mad.  Why should you need file system coping?

Anyway, option 1 did resolve the problem and I believe option 2 would also.  But surely neither of these solutions is a real world fix


General
·         CreateWssSiteContent: Creating project site failed! Project Uid=448aa1e5-5e07-e411-9430-005056010737, site URL=http://siteaddress - activated feature at PWA level, site name=site address activated feature at PWA level. Microsoft.SharePoint.SPException: The site template requires that the Feature {17843394-988a-4a4e-9d5e-8b419bdc1340} be installed in the farm or site collection. at Microsoft.SharePoint.Utilities.SPUtility.ThrowSPExceptionWithTraceTag(UInt32 tagId, ULSCat traceCategory, String resourceId, Object[] resourceArgs) at Microsoft.SharePoint.SPWebTemplateElement.VerifyFeatures(XmlNodeList xmlNodeFeatures, SPWeb applyTemplateToThisWeb, SPFeatureScope featureScope, SPFeatureDependencyErrorBehavior featureDependencyErrorBehavior, List`1& featureDependencyErrors) at Microsoft.SharePoint.SPWebTemplateElement.VerifyFeaturesInWebTemplate(SPWeb applyTemplateToThisWeb, SPFeatureDependencyErrorBehavior featureDependencyErrorBehavior, ICollection`1& featureDependencyErrors) at Microsoft.SharePoint.SPWeb.LoadFeatureWebTemplateContent(SPFeatureWebTemplate featureWebTemplate, SPFeatureDependencyErrorBehavior featureDependencyErrorBehavior, ICollection`1& featureDependencyErrors) at Microsoft.SharePoint.SPWeb.ProvisionWebTemplate(SPWebTemplate webTemplate, String webTemplateToUse, SPFeatureWebTemplate featureWebTemplate, Page page, SPFeatureDependencyErrorBehavior featureDependencyErrorBehavior, ICollection`1& featureDependencyErrors) at Microsoft.SharePoint.SPWeb.ApplyWebTemplate(SPWebTemplate webTemplate, Page page, SPFeatureDependencyErrorBehavior featureDependencyErrorBehavior, ICollection`1& featureDependencyErrors) at Microsoft.SharePoint.SPSite.CreateWeb(String strUrl, String strTitle, String strDescription, UInt32 nLCID, String strWebTemplate, Boolean bCreateUniqueSubweb, Boolean bConvertIfThere, Guid webId, Guid rootFolderId, Boolean createSystemCatalogs, Guid appInstanceId, String appWebDomainId) at Microsoft.SharePoint.SPSite.SPWebCollectionProvider.CreateWeb(String strWebUrl, String strTitle, String strDescription, UInt32 nLCID, String strWebTemplate, Boolean bCreateUniqueSubweb, Boolean bConvertIfThere, Guid appInstanceId) at Microsoft.SharePoint.SPWebCollection.Add(String strWebUrl, String strTitle, String strDescription, UInt32 nLCID, String strWebTemplate, Boolean useUniquePermissions, Boolean bConvertIfThere, Guid appInstanceId) at Microsoft.Office.Project.Server.BusinessLayer.AdminProjectSiteAllocator.CreateSPWeb(ProjectSiteConfigurationInfo configInfo, SPSite topSite):

·         WSSCreateSiteFailure (16400). Details: id='16400' name='WSSCreateSiteFailure' uid='b7860ae6-5e07-e411-942f-0050560104c8' projectUID='448aa1e5-5e07-e411-9430-005056010737' workspaceUrl=siteaddresst - activated feature at PWA level/sitename- activated feature at PWA level' projectWorkspaceName='sitename - activated feature at PWA level'.