【发布时间】:2016-01-26 20:28:52
【问题描述】:
我正在开发一个 C# 网站,上周末我刚刚开始遇到一些随机错误。该错误是从网站上的随机页面生成的,当然,几乎没有任何信息可以继续。这是错误:
System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at System.Collections.ObjectModel.KeyedCollection`2.AddKey(TKey key, TItem item)
at System.Collections.ObjectModel.KeyedCollection`2.InsertItem(Int32 index, TItem item)
at System.Collections.ObjectModel.Collection`1.Add(T item)
at CommerceBuilder.Catalog.DefaultUrlRewriter.InitializeCache()
at CommerceBuilder.Catalog.DefaultUrlRewriter.a(String A_0)
at CommerceBuilder.Catalog.DefaultUrlRewriter.RewriteUrl(String sourceUrl)
at CommerceBuilder.Services.b.c(Object A_0, EventArgs A_1)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
我已经阅读了很多关于类似错误的文章,但我没有添加任何我知道的新字典项目,所以我不知道从哪里开始。谁能给我一些建议?
【问题讨论】:
-
什么是
CommerceBuilder?导致此错误的操作是什么? -
某事正试图向
Dictionary添加一个密钥,而该密钥已经存在。我先看看CommerceBuilder.Catalog.DefaultUrlRewriter.InitializeCache()。 -
CommerceBuilder 是 AbleCommerce 电子商务平台
-
尝试使用
ConcurrentDictionary和TryAdd -
我会检查 CommerceBuilder 类并查看“初始化”方法。如果您看不到它(它被写入第三方程序集),那么我会联系该第三方提供商,或者我会尝试使用工具对其进行反编译。