UPDATE
Стоит отметить, что это происходит только тогда, когда определение сайта вызывается из SPWebApplication.Sites.Add. Если я использую пользовательский интерфейс, это работает нормально. Мой код олицетворяет системную учетную запись при вызове этого кода.
Правильно ли я считаю, что метод ApplyWebTemplate () SPSite является асинхронным? Если это так, то моя проблема, вероятно, связана с выбором времени. То есть при запуске этого кода необходимая инфраструктура еще не создана.
ОРИГИНАЛЬНЫЙ ВОПРОС
У меня есть пользовательское определение сайта, которое использует SPProvisioningProvider для настройки семейства сайтов.
После вызова ApplyWebTemplate ("BLANKINTERNET # 0") для применения стандартного определения сайта портала публикации я пытаюсь создать новую страницу на основе страницы приветствия с макетом страницы TOC.
Однако я получаю исключение, когда вызываю этот фрагмент кода
Dim pubSite As New PublishingSite(_siteColl)
Dim pubWeb As PublishingWeb = PublishingWeb.GetPublishingWeb(site)
Dim layouts() As PageLayout = Nothing
layouts = pubWeb.GetAvailablePageLayouts(_welcomeContentTypeID)
При вызове метода GetAvailablePageLayouts возникает следующее исключение.
Неверное имя поля. {7581e709-5d87-42e7-9fe6-698ef5e86dd3}
Это происходит только на нашей живой ферме. Это не произошло в dev или в тестовой среде, поэтому я надеюсь, что это изменение конфигурации, но все ссылки, которые я могу найти в Tinterweb (sic), связаны с отсутствием типа поля 'PublishingHidden', но как я могу восстановить это? учитывая, что это происходит в процессе подготовки семейства сайтов?
Спасибо
Charlie