Как заставить новое семейство сайтов наследовать главную страницу? - PullRequest
1 голос
/ 28 января 2009

У меня есть код, который создает новый сайт в SharePoint. При просмотре недавно созданного сайта выдается ошибка «Файл не найден». Если вы перейдете к /_layouts/ChangeSiteMasterPage.aspx, вы можете выбрать новый главный сайт и главную страницу системы, и сайт будет работать нормально. Эта статья в КБ прекрасно описывает мои симптомы: http://support.microsoft.com/kb/936908

Моя проблема в том, что из двух приведенных (может быть, трех?) Решений работает только одно. Если я вручную выберу новые главные страницы, это будет работать нормально. Второй обходной путь - активировать функцию публикации на новом сайте. Это ничего не исправляет.

Также рекомендуется прикрепить функцию публикации к определению сайта, которое я использую для нового сайта. В моем случае это STS # 1 (пустой сайт), и сшивание функции публикации не решает мою проблему.

У кого-нибудь есть представление о том, как мне разобраться в правильной главной странице?

Ответы [ 2 ]

2 голосов
/ 28 января 2009

Мы делаем это через управление делегатом. В OnLoad мы вызываем следующий метод:

private void ConfigureMasterPage(SPWeb web)
{
       string masterURL = string.Empty;
       masterURL = web.Site.ServerRelativeUrl + "/_catalogs/masterpage/XXX.master";
       masterURL = masterURL.Replace("//", "/");
       web.MasterUrl = masterURL;
       web.CustomMasterUrl = masterURL;
       web.Update();
}

Не забудьте выполнить удаление объектов SPSIte и SPWeb, и вам придется установить для параметра AllowUnsafeUpdates значение true.

Надеюсь, это поможет

0 голосов
/ 08 февраля 2009

Оказывается, мне просто нужно было изменить основной шаблон на одном из сгенерированных сайтов, а затем сохранить его как шаблон. Я удалил сломанный шаблон и поставил его на место. Теперь все сгенерированные сайты работают нормально.

...