Friday, January 21, 2011

The annoying, "The site is not valid. The 'Pages' document library is missing" error when trying to set the DefaultPage property for a website.

The DefaultPage property points to a page in the PagesList, so the PagesList must be set to a valid document library before the DefaultPage property can be set.

Here's how to do this:


SPWeb newSite = mySite.Webs.Add(subsiteUrl, subsiteTitle, subsiteDescription, 1033, currentTemplate, true, false);
newSite.Update();
SPFile welcomePage = newSite.Folders[pagesFolder].Files[defaultPage];
PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(newSite);
pubWeb.PagesListId = newSite.Folders[pagesFolder].DocumentLibrary.ID;
pubWeb.Update();
pubWeb.DefaultPage = welcomePage;
pubWeb.Update();

No comments:

Post a Comment