引发与OnePerRequestModule相关的Ninject间歇性异常

引发与OnePerRequestModule相关的Ninject间歇性异常,ninject,httpmodule,ninject-2,ninject.web,Ninject,Httpmodule,Ninject 2,Ninject.web,我刚刚将Ninject的现有实现从1.5升级到2.0。我现在看到,当许多请求在短时间内发生时,会引发间歇性异常 下面是正在抛出的异常 类型:系统参数异常 消息:已添加具有相同密钥的项。 来源:Ninject 堆栈跟踪:位于System.ThrowHelper.ThrowArgumentException(ExceptionResource资源) 在System.Collections.Generic.Dictionary`2.Insert(TKey、TValue、布尔加法) 在System.Co

我刚刚将Ninject的现有实现从1.5升级到2.0。我现在看到,当许多请求在短时间内发生时,会引发间歇性异常

下面是正在抛出的异常

类型:系统参数异常
消息:已添加具有相同密钥的项。
来源:Ninject
堆栈跟踪:位于System.ThrowHelper.ThrowArgumentException(ExceptionResource资源)
在System.Collections.Generic.Dictionary`2.Insert(TKey、TValue、布尔加法)
在System.Collections.Generic.Dictionary`2.Add(TKey,TValue)
在Ninject.Components.ComponentContainer.CreateNewInstance(类型组件,类型实现)
在Ninject.Components.ComponentContainer.ResolveInstance(类型组件,类型实现)
在Ninject.Components.ComponentContainer.Get(键入component)
在Ninject.Components.ComponentContainer.b_u 6(ParameterInfo参数)
在System.Linq.Enumerable.WhereSelectArrayInterator`2.MoveNext()
在System.Linq.Buffer`1..ctor(IEnumerable`1源)处
在System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
在Ninject.Components.ComponentContainer.CreateNewInstance(类型组件,类型实现)
在Ninject.Components.ComponentContainer.ResolveInstance(类型组件,类型实现)
在Ninject.Components.ComponentContainer.Get(键入component)
位于Ninject.Components.ComponentContainer.GetT
在Ninject.KernelBase.CreateContext(IRequest请求,IBinding绑定)
在Ninject.KernelBase.c__显示ClassA.b__6(IBinding binding)
在System.Linq.Enumerable.c_uuuuDisplayClass12`3.b_uuuuuu11(TSource x)
在System.Linq.Enumerable.whereSelectEnumerableInterator`2.MoveNext()
在System.Linq.Enumerable.d_uaa`1.MoveNext()
在System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
在Ninject.ResolutionExtensions.Get[T](IResolutionRoot,iParmeter[]参数)
在ConsumingSite.Application_BeginRequest(对象发送方,事件参数e)的名称处

如果我从web.config中的
httpModules
中删除
OnePerRequestModule
项,则不会引发异常,但这会增加大量开销


如果任何人能提供帮助,我会提前向他们表示感谢

出现了多线程问题。尝试使用在上找到的2.2 RC1。请告诉我此版本是否仍然存在此问题,以确保我们在发布之前没有需要解决的进一步问题。

您的绑定有什么有趣的地方吗?或者它是一堆隐式类自绑定?原则上,这显然应该是可行的。你有主干版本还是二进制版本?没什么特别的,它们都是在v1.5中完美工作的绑定。另外,我正在使用当前的二进制文件。Ninject Google小组的Sean Chambers建议不推荐使用OnePerRequestModule,因为InxxScope方法可以处理这一责任。没有回答的是为什么OnePerRequestModule仍然包含在Ninject解决方案中。我还想知道这是否是由GarbageCollectionCachePruner的赛车状况引起的。此处描述了具体问题(包括重现步骤):。它在版本2.1.0.70中已修复。