SharePoint 2013 - 分类法 - Microsoft.SharePoint.Taxonomy.TaxonomySession.GetTaxonomySession

7

我正在使用C#更新管理元数据字段。 以下是获取术语的TermId的代码。

        string termId = string.Empty;

        try
        {
            TaxonomySession tSession = TaxonomySession.GetTaxonomySession(CC);
            TermStore termStore = taxonomySession.GetDefaultSiteCollectionTermStore();
            TermSet tset = ts.GetTermSet(termSetId); // I have proper Guid here, checked this in SharePoint 2013 server.

            LabelMatchInformation lmi = new LabelMatchInformation(CC);

            lmi.Lcid = 1033;
            lmi.TrimUnavailable = true;
            lmi.TermLabel = "xyz"; //Name of the term.

            TermCollection termMatches = tset.GetTerms(lmi);

            CC.Load(tSession);
            CC.Load(ts);
            CC.Load(tset);
            CC.Load(termMatches);
            CC.ExecuteQuery();

            if (termMatches != null && termMatches.Count() > 0)
                termId = termMatches.First().Id.ToString();
        }
        catch (Exception ex)
        {
            var d = ex.Message;
        }

        return termId;

    }

但是我得到的异常是:“无法从空对象调用方法或检索属性。以下调用堆栈返回的对象为空。“GetDefaultSiteCollectionTermStore \r\nMicrosoft.SharePoint.Taxonomy.TaxonomySession.GetTaxonomySession”。

我已经尝试手动从Sharepoint2013加载,那里运行良好。是否有什么遗漏?感谢您的帮助。

2个回答

12

感谢 user1545314 和 Google 的贡献

在此输入图片描述


8
  1. 前往“服务应用程序”中的“托管元数据服务”。
  2. 选择“托管元数据服务代理”(尝试点击文本周围的空白处而不是文本本身),并单击“属性”。
  3. 设置该应用程序为关键字和术语集的默认存储。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接