Обзор Я наблюдаю действительно странное поведение с кодом, который пытается извлечь TermStore из TaxonomySession.Код выглядит следующим образом:
using (SPSite mySite = new SPSite(url))
{
TaxonomySession session = new TaxonomySession(mySite);
// Get all the TermStores associated with the provided site.
TermStoreCollection stores = session.TermStores;
Console.WriteLine(stores.Count);
Вот проблема:
- Приведенный выше код не возвращает никаких TermStores, то есть счетчик равен нулю
Если я запускаю следующий скрипт PowerShell из той же командной строки, я получаю 1 TermStore в счетчике.
$site = new-object Microsoft.SharePoint.SPSite("https://mysite")
$session = new-object Microsoft.SharePoint.Taxonomy.TaxonomySession($site)
$session.TermStores.Count
Я попробовал следующее:
- Мой прокси приложения управляемых метаданных является частью группы прокси по умолчанию
- Администратор для службы управляемых метаданных настроен правильно
- Разрешения для службы управляемых метаданных настроены правильно
- Пул приложений управляемых метаданных работает под учетной записью фермы
- Изменение приведенного выше кода для запуска с повышенными привилегиями
Странно то, что первый блок кода вышеНЕ извлекает TermStore (s), если он скомпилирован как исполняемый файл и вызван из командного окна, которое выполняется с учетными данными фермы.В этом же окне я могу скопировать и вставить второй блок эквивалентных сценариев PowerShell и запустить его!
Кроме того, эта проблема возникает только в нашей производственной среде.Тот же исполняемый файл успешно работал в наших средах DEV, TEST и Pre Prod.
Любая помощь на этом этапе будет высоко оценена.