Sitecore item.add 编程异常

Exception on Sitecore item.add programmatically

我正在尝试在 Sitecore 上以编程方式创建项目,代码如下所示:

                var db = Sitecore.Configuration.Factory.GetDatabase(dbName);
                Item RepositoryItem = db.GetItem(repId, Sitecore.Context.Language);

                TemplateID tid = new Sitecore.Data.TemplateID(new Sitecore.Data.ID(TemplateId);
                Item newItem = RepositoryItem.Add(resource_name, tid);
                newItem.Editing.BeginEdit();
                newItem[resourceConstants.IndustryFieldName] = industry;
                newItem[resourceConstants.MarketFieldName] = markets;

                newItem[I_BUResourceConstants.ResourceIdFieldName] = resource_id;           
                newItem.Editing.EndEdit(true);

当应用程序执行时 RepositoryItem.add 我收到以下错误:值不能为空/参数名称缓存。

这是堆栈跟踪

at Sitecore.Diagnostics.Assert.ArgumentNotNull(Object argument, String argumentName)
   at Sitecore.Data.DataProviders.Sql.SqlDataProvider.ResolvePathRec(String[] path, PathCache cache, CallContext context)
   at Sitecore.Data.DataProviders.DataProvider.ResolvePath(String itemPath, CallContext context, DataProviderCollection providers)
   at Sitecore.Nexus.Data.DataCommands.ResolvePathCommand.Execute(String , Database )
   at Sitecore.Data.Engines.EngineCommand`2.Execute()
   at Sitecore.Data.Managers.ItemProvider.GetItem(String itemPath, Language language, Version version, Database database, SecurityCheck securityCheck)
   at Sitecore.Data.Managers.PipelineBasedItemProvider.<>c__DisplayClass2f.<GetItem>b__2e()
   at Sitecore.Data.Managers.PipelineBasedItemProvider.ExecuteAndReturnResult[TArgs,TResult](String pipelineName, String pipelineDomain, Func`1 pipelineArgsCreator, Func`1 fallbackResult)
   at Sitecore.Data.Managers.ItemManager.GetItem(String itemPath, Language language, Version version, Database database)
   at Sitecore.Globalization.DictionaryDomain.GetDomainDefinitionItem(Database database, String name)
   at Sitecore.Globalization.DictionaryDomain.TryParse(String domainDefinition, Database database, DictionaryDomain& domain)
   at Sitecore.Globalization.DictionaryDomain.GetDefaultDomain(Database database)
   at Sitecore.Pipelines.GetTranslation.TryGetFromContextDatabase.Process(GetTranslationArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Globalization.Translate.TextByLanguage(String domainName, TranslateOptions options, String key, Language language, String defaultValue, Object[] parameters)
   at Sitecore.Globalization.Translate.TextByLanguage(String key, Language language, String defaultValue, Object[] parameters)
   at Sitecore.Globalization.Translate.TextByLanguage(String key, Language language, String defaultValue)
   at Sitecore.Globalization.Translate.TextByLanguage(String key, Language language)
   at Sitecore.Data.Items.ItemUtil.GetItemNameError(String name)
   at Sitecore.Data.Items.ItemUtil.IsItemNameValid(String name)
   at Sitecore.Data.Items.ItemUtil.ProposeValidItemName(String name, String defaultValue)
   at Sitecore.Data.Items.ItemUtil.ProposeValidItemName(String name)
   at resource_import.AddResourceToRepository(String resource_id, String product_solution, String markets, String industry, String product_type, String resource_name, String resource_link, String resource_type) in C:\project\resource.aspx.cs
   at resource_import.butSubmit_Click(Object sender, EventArgs e) in C:\project\resource.aspx.cs

我在 Sitecore 8.1(修订版 151207)上工作,我有相同的代码在 Sitecore 7.2 上工作

您似乎传递了一个无效的项目名称。它是 运行 名称验证并返回错误消息。它尝试翻译错误消息,但随后在 SQL 数据提供程序中发生另一个错误。看起来它找不到路径缓存。检查您是否已使用 Caching.Enabled 设置禁用缓存。