Запуск MasterPages из каталога Layouts - PullRequest
3 голосов
/ 24 апреля 2009

Чтобы упростить нашу среду SharePoint, я хочу иметь центральное и единое место, где хранятся все главные страницы, поэтому я надеялся ссылаться на файлы главной страницы прямо из каталога _layouts.

Я добавляю файлы в каталог «\ LAYOUTS \ MyMasterPages», а затем обновляю объект SPWeb, используя этот путь:

web.MasterUrl = "/_layouts/MyMasterPages/newdefault.master"

Но когда я захожу на сайт, я получаю:

Ссылочный файл '/_Layouts/MyMasterPages/newdefault.master' не допускается на этой странице. в System.Web.UI.TemplateParser.ProcessError (String сообщение) в System.Web.UI.BaseTemplateParser.GetReferencedType (VirtualPath virtualPath, логическое allowNoCompile)
в System.Web.UI.PageParser.ProcessMainDirectiveAttribute (String имя_устройства, имя строки, значение строки, IDictionary parseData) в System.Web.UI.TemplateParser.ProcessMainDirective (IDictionary mainDirective)

Я предполагаю, что это может быть связано с политиками безопасности уровня доверия и конфигурацией CAS, но я не совсем уверен. Есть ли способ разрешить этот центральный способ использования главных страниц на предприятии или я застрял, используя / _catalog / virtual path?

Ответы [ 3 ]

3 голосов
/ 12 сентября 2011

Это сработало для меня:

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);
    this.MasterPageFile = "path to masterpage";
}

как предложено на: Как использовать главную страницу сайта со страницы _layout SharePoint?

0 голосов
/ 18 февраля 2011

Главная страница, используемая сайтом SharePoint, должна находиться в галерее главных страниц. Насколько мне известно, это жесткое требование для SharePoint.

Это дает вам больше пользы, чем вы думаете. Это позволяет вам изменять главную страницу в режиме реального времени, используя конструктор SharePoint, и изменения видны только вам. Как только главная страница регистрируется и публикуется как основная версия, изменения становятся видимыми для общественности. У вас также есть история версий на главной странице.

Я понимаю, тебе больно, я был в такой же ситуации, как и ты. Что я узнал, так это: не борись с платформой, просто работай на ней.

0 голосов
/ 24 апреля 2009

Насколько я понимаю (но я не знаю, почему), мастер-страницы должны быть в галерее MasterPage каждого семейства сайтов.

Поскольку вам потребуется развернуть эти пакеты на каждом сервере SharePoint (веб-интерфейс, приложение, база данных и т. Д.) В ферме, я думаю, что это требование связано либо с кластеризацией, либо, возможно, с базой данных и побочным эффектом.

В любом случае обязательно используйте пользовательские функции для развертывания главных страниц независимо от размера фермы.

Я понимаю, что хочу делать что-то по-своему с SharePoint, и, хотя я, как правило, придерживаюсь такого рода мыслей, прошедший год боли научил меня тому, что жить в рекомендованных границах SharePoint - это лучший способ идти.

...