dynamics-crm-2011 - 从汇总 11 升级到汇总 13 时出错 - 已添加具有相同 key 的项目

标签 dynamics-crm-2011 dynamics-crm

在我们的生产服务器上尝试从 rollup 11 升级到 rollup 13 时,我们在尝试升级我们的数据库时收到与元数据缓存相关的错误,如下所示。有没有人见过这样的错误?任何想法从哪里开始排除故障?

21:59:08|错误| Microsoft.Crm.Tools.Admin.OrganizationDatabaseHotFixer 期间发生异常:操作 Microsoft.Crm.Tools.Admin.InstallDatabaseUpdatesAction 失败。
内部异常:
System.Reflection.TargetInvocationException:调用的目标已抛出异常。 ---> System.ArgumentException: 已添加具有相同键的项目。
在 System.Collections.Generic.Dictionary 2.Insert(TKey key, TValue value, Boolean add) at Microsoft.Crm.Metadata.PreloadedOptionSetMetadataDataProvider.LoadNormalOptions(IPreloadedMetadataInitializationContext context, Boolean initializeEnumOptionProvider) at Microsoft.Crm.Metadata.PreloadedMetadataCacheDataProvider.InitializeOptionSets(IPreloadedMetadataInitializationContext context, LoadMasks masks, IOrganizationContext organizationContext) at Microsoft.Crm.Metadata.PreloadedMetadataCacheDataProvider.Initialize(IOrganizationContext organizationContext, MetadataContainer container, LoadMasks masks) at Microsoft.Crm.Metadata.DynamicMetadataCacheLoader.CreateMetadataCacheDataProvider(MetadataContainer container, IOrganizationContext context, LoadMasks masks, CounterList counter) at Microsoft.Crm.Metadata.DynamicMetadataCacheLoader.BuildMetadataCacheFromMetadataContainer(MetadataContainer container, LoadMasks masks, IOrganizationContext context, CounterList counter) at Microsoft.Crm.Metadata.DynamicMetadataCacheLoader.LoadCacheFromDatabaseInternal(LoadMasks masks, CrmDbConnection connection, CrmTransaction transaction, IOrganizationContext context, CounterList counter) at Microsoft.Crm.Metadata.DynamicMetadataCacheLoader.LoadCacheFromDatabase(LoadMasks masks, IOrganizationContext context, CounterList counter) at Microsoft.Crm.Metadata.DynamicMetadataCacheFactory.LoadMetadataCache(LoadMethod method, CacheType type, IOrganizationContext context) at Microsoft.Crm.Metadata.MetadataCache.LoadCache(IOrganizationContext context, Boolean fileOnlyIfExists) at Microsoft.Crm.Metadata.MetadataCache.GetInstance(IOrganizationContext context) at Microsoft.Crm.BusinessEntities.ExecutionContext.ProcessDependencies(FlushCacheOption option, CreateNewCollectorOption createOption) at Microsoft.Crm.BusinessEntities.ExecutionContext.OnEndRequest() at Microsoft.Crm.Setup.MetadataPatchService.ProcessMetadataDiffFile(String targetRevision) --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Microsoft.Crm.Setup.Database.DllMethodAction.Execute(Guid organizationId) at Microsoft.Crm.Setup.Database.DatabaseInstaller.ExecuteReleases(ReleaseInfo releaseInfo, Boolean isInstall) at Microsoft.Crm.Setup.Database.DatabaseInstaller.Install(Int32 languageCode, String configurationFilePath, Boolean upgradeDatabase, Boolean isInstall) at Microsoft.Crm.Setup.Database.DatabaseInstaller.InstallUpdate(String configurationFilePath, Boolean upgradeDatabase) at Microsoft.Crm.Setup.Common.Update.DBUpdateDatabaseInstaller.ApplyDBUpdates(Guid orgId) at Microsoft.Crm.Tools.Admin.InstallDatabaseUpdatesAction.ApplyDBUpdatesInternal(Guid orgId, String orgUniqueName, String releaseFilePath, Boolean ignoreErrors) at Microsoft.Crm.Tools.Admin.InstallDatabaseUpdatesAction.ApplyDBUpdates(Guid orgId, String orgUniqueName, OrganizationOperationType operationType) at Microsoft.Crm.Tools.Admin.InstallDatabaseUpdatesAction.Do(IDictionary parameters) at Microsoft.Crm.Setup.Common.CrmAction.ExecuteAction(CrmAction action, IDictionary parameters, Boolean undo) InnerException: System.ArgumentException: An item with the same key has already been added. at System.Collections.Generic.Dictionary 2.Insert(TKey key, TValue value, Boolean add)
在 Microsoft.Crm.Metadata.PreloadedOptionSetMetadataDataProvider.LoadNormalOptions(IPreloadedMetadataInitializationContext context, Boolean initializeEnumOptionProvider)
在 Microsoft.Crm.Metadata.PreloadedMetadataCacheDataProvider.InitializeOptionSets(IPreloadedMetadataInitializationContext context, LoadMasks 掩码, IOrganizationContext organizationContext)
在 Microsoft.Crm.Metadata.PreloadedMetadataCacheDataProvider.Initialize(IOrganizationContext organizationContext, MetadataContainer 容器, LoadMasks 掩码)
在 Microsoft.Crm.Metadata.DynamicMetadataCacheLoader.CreateMetadataCacheDataProvider(MetadataContainer 容器、IOorganizationContext 上下文、LoadMasks 掩码、CounterList 计数器)
在 Microsoft.Crm.Metadata.DynamicMetadataCacheLoader.BuildMetadataCacheFromMetadataContainer(MetadataContainer 容器,LoadMasks 掩码,IOorganizationContext 上下文,CounterList 计数器)
在 Microsoft.Crm.Metadata.DynamicMetadataCacheLoader.LoadCacheFromDatabaseInternal(LoadMasks 掩码、CrmDbConnection 连接、CrmTransaction 事务、IOorganizationContext 上下文、CounterList 计数器)
在 Microsoft.Crm.Metadata.DynamicMetadataCacheLoader.LoadCacheFromDatabase(LoadMasks 掩码,IOorganizationContext 上下文,CounterList 计数器)
在 Microsoft.Crm.Metadata.DynamicMetadataCacheFactory.LoadMetadataCache(LoadMethod method, CacheType type, IOrganizationContext context)
在 Microsoft.Crm.Metadata.MetadataCache.LoadCache(IOrganizationContext context, Boolean fileOnlyIfExists)
在 Microsoft.Crm.Metadata.MetadataCache.GetInstance(IOrganizationContext 上下文)
在 Microsoft.Crm.BusinessEntities.ExecutionContext.ProcessDependencies(FlushCacheOption 选项,CreateNewCollectorOption createOption)
在 Microsoft.Crm.BusinessEntities.ExecutionContext.OnEndRequest()
在 Microsoft.Crm.Setup.MetadataPatchService.ProcessMetadataDiffFile(String targetRevision)

最佳答案

经过大量的谷歌搜索后,我能够找到以下处理问题的 Microsoft KB。我仍然不知道问题的根本原因,但知识库文章中的脚本解决了这个问题:

http://support.microsoft.com/kb/2808349

关于dynamics-crm-2011 - 从汇总 11 升级到汇总 13 时出错 - 已添加具有相同 key 的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718758/

相关文章:

soap - 使用SoapUI测试Dynamics CRM在线服务

javascript - CRM 2011 父级上的事件实体

c# - 如何从 PluginType 项目中检索步骤

javascript - window.open 使用不同的 URL

facebook - 使用 Facebook 登录验证 Dynamics CRM Online

javascript - 如果帐户有相关实体记录,则显示弹出窗口/警报

c#-4.0 - CRM 2011 插件 - 对属性名称使用早期绑定(bind)实体是否会导致内存问题?

dynamics-crm-2011 - CRM 2011 和 2013 在 IE 11 上以移动模式打开

javascript - 查看 Dynamics CRM 中 onChange 字段事件的源函数

javascript - 如何在 Dynamics CRM 中使用 openForm 设置多选字段值?