我刚刚将 Ninject 的现有实现从 1.5 升级到了 2.0。我现在看到在短时间内发生许多请求时会引发间歇性异常。
这是抛出的异常。
类型: System.ArgumentException
消息:已添加具有相同键的项。
来源: Ninject
堆栈跟踪:
在 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add 的 System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) (TKey key, TValue value)
at Ninject.Components.ComponentContainer.CreateNewInstance(Type component, Type implementation)
at Ninject.Components.ComponentContainer.ResolveInstance(Type component, Type implementation)
at Ninject.Components.ComponentContainer.Get(Type component)
在System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
在 System.Linq.Buffer`1..ctor(IEnumerable`1 源)
在 System.Linq 的 Ninject.Components.ComponentContainer.<CreateNewInstance>b__6(ParameterInfo 参数) .Enumerable.ToArray[TSource](IEnumerable`1 source)
在 Ninject.Components.ComponentContainer.CreateNewInstance(Type component, Type implementation)
在 Ninject.Components.ComponentContainer.ResolveInstance(Type component, Type implementation)
在 Ninject.Components.ComponentContainer。
在 Ninject.KernelBase.CreateContext的 Ninject.Components.ComponentContainer.GetT 处获取(类型组件)
(IRequest 请求,IBinding 绑定)
在 Ninject.KernelBase.<>c__DisplayClassa.<Resolve>b__6(IBinding binding)
at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext ()
在 System.Linq.Enumerable.<CastIterator>d__aa`1.MoveNext()
在 System.Linq.Enumerable.Single[TSource](IEnumerable`1 源)
在 Ninject.ResolutionExtensions.Get[T](IResolutionRoot root, IParameter [] 参数)
在NameOfConsumingSite .Application_BeginRequest(Object sender, EventArgs e) ...
OnePerRequestModule
如果我从 web.config 中删除该项目,则不会引发异常httpModules
,但这会增加大量开销。
如果他们可以提供帮助,我提前感谢任何人!