У меня проблема при создании TermSetGroup.Мой код выглядит так:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//create new group if the groupName was not created.
Group group = termStore.Groups.Where(g => g.Name == groupName).Count() > 0 ? termStore.Groups[groupName] : termStore.CreateGroup(groupName);
//create new term set if the termSetName was not created.
TermSet termSet = group.TermSets.Where(s => s.Name == termSetName).Count() > 0 ? group.TermSets[termSetName] : group.CreateTermSet(termSetName);
termSet.Owner = TermSetOwner;
//add terms to term set.
int lcid = CultureInfo.CurrentCulture.LCID;
foreach (string termName in terms)
{
if (termSet.GetTerms(termName, false).Count <= 0)
{
termSet.CreateTerm(termName, lcid);
}
}
termStore.CommitAll();
});
Этот код действительно работает, если я использую его в отдельном консольном проекте.Это создает мою группу и в этой группе также TermSet.Но когда я использую этот код из веб-сервиса, который был вызван в рабочем процессе, он говорит мне, что у моего пользователя нет прав на создание группы.Когда группа существует, она работает и может создавать TermSet.
Как это может быть, когда я использую "RunWithElevatedPrivileges"?Пользователь, который запускает рабочий процесс, является администратором сайта.Даже администратор термистора является администратором сайта ... так что я тут не так делаю?