SP 2013中创建术语失败



我试图在SP 2013术语集中创建一个术语。我能够从具有给定凭据的术语集中读取术语。

设置:

ServiceAccountLogonName用户是Term Store管理员之一

代码:

var siteUrl = ConfigHelper.GetValue("SharepointSiteUrl");
var clientContext = new ClientContext(siteUrl);
clientContext.Credentials = new NetworkCredential(ConfigHelper.GetValue("ServiceAccountLogonName"), ConfigHelper.GetValue("ServiceAccountPassword"));
var taxonomySession = TaxonomySession.GetTaxonomySession(clientContext);
var termStore = taxonomySession.TermStores.GetById(new Guid("dae0745c07ae40d6bf4b6c52e3172d6a"));
var termSet = termStore.GetTermSet(new Guid("f40eeb54-7c87-409d-96c7-75ceed6bff60"));
foreach (var tagName in tagNames)
{
    var newTerm = termSet.CreateTerm(tagName, Thread.CurrentThread.CurrentUICulture.LCID, Guid.NewGuid());
    newTerm.CreateLabel(tagName, Thread.CurrentThread.CurrentUICulture.LCID, true);
    termStore.CommitAll();
    clientContext.Load(newTerm);
    clientContext.ExecuteQuery();
}

执行ExecuteQuery时报错:

读取或写入数据库失败。刷新后重试。如果有问题仍然存在,请联系管理员

凭据是否需要术语存储或术语集上的任何特定权限?

这里还有什么我遗漏的吗?

有用的教程:https://github.com/officedev/trainingcontent/blob/master/o3656/o3656 - 8% - 20 developing%20advanced%20taxonomy%20scenarios%20in%20office%20365/lab.md

确保您的用户具有术语存储的权限。转到中央管理==>管理服务应用程序==>点击您的服务应用程序的联机(不是链接)==>选择"权限"ribbon按钮并添加您的帐户。

还要确保打开术语集列表以创建术语。你可以检查你的termSet变量的"IsOpenForTermCreation"

第三。在CreateTerm行中使用guide . newguid()代替new Guid()。

有时间做一些测试:

        foreach (var tagName in tagNames)
        {
            var newTerm = termSet.CreateTerm(tagName, Thread.CurrentThread.CurrentUICulture.LCID, Guid.NewGuid());
        }
        termStore.CommitAll();
        clientContext.Load(termStore);
        clientContext.ExecuteQuery();

在我将用户添加到服务应用程序权限后,这对我很有效。

最新更新