在 SP 2013 中创建术语失败

Creating term fails in SP 2013

我正在尝试在 SP 2013 术语集中创建一个术语。我能够使用给定的凭据从术语集中读取术语。

设置:

ServiceAccountLogonName 用户是术语库管理员之一

代码:

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%20Developing%20advanced%20Taxonomy%20Scenarios%20in%20Office%20365/Lab.md

确保您的用户有权访问术语库。 转到中央管理 ==> 管理服务应用程序 ==> 单击服务应用程序的行(不是 link) ==> 选择 "Permissions" 功能区按钮并添加您的帐户。

还要确保您的术语集已开放供术语创建。您可以检查 termSet 变量的 "IsOpenForTermCreation"。

第三。在 CreateTerm 行中使用 Guid.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();

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