我正在尝试在SP 2013术语集中创建一个术语。我能够从给定凭证的术语集中读取术语。
设定:
ServiceAccountLogonName用户是术语库管理员之一
代码:
TreeView tv = new TreeView() { Dock = DockStyle.Fill };
tv.Nodes.Add(new ElementTreeNode { Text = "Node 1" });
tv.Nodes.Add(new ElementTreeNode { Text = "Node 2" });
tv.MouseDown += (o, e) => {
TreeNode n = tv.GetNodeAt(e.Location);
tv.SelectedNode = n; // known bug, force selected node
if (e.Button == MouseButtons.Right) {
if (n is ElementTreeNode) {
var n2 = (ElementTreeNode) n;
n2.ElementContextMenu.Show(tv, e.Location);
}
}
};
运行ExecuteQuery时出现错误消息:
无法读取或写入数据库。刷新然后再试一次。如果问题 坚持,请联系管理员。
凭据是否需要术语存储或术语集的任何特定权限?
我还缺少什么吗?
答案 0 :(得分:0)
确保您的用户拥有期限存储的权限。 转到中央管理==>管理服务应用程序==>点击您的服务应用程序的行(而不是链接)==>选择“权限”功能区按钮并添加您的帐户。
同时确保您的术语集打开以进行术语创建。您可以检查termSet变量的“IsOpenForTermCreation”。
第三。在CreateTerm行中使用Guid.NewGuid()而不是新的Guid()。
有时间进行一些测试:
foreach (var tagName in tagNames)
{
var newTerm = termSet.CreateTerm(tagName, Thread.CurrentThread.CurrentUICulture.LCID, Guid.NewGuid());
}
termStore.CommitAll();
clientContext.Load(termStore);
clientContext.ExecuteQuery();
在我将用户添加到服务应用程序权限后,这对我有用。