我在我的网络项目中使用以下2个Ninject程序集。
Ninject.dll – Version 2.2.0.0
Ninject.Web.dll – Version 2.2.0.4
我注意到当我在服务器上执行负载测试时,我得到的异常指向Ninject
消息:收集已修改;枚举操作可能不会 执行。堆栈跟踪:at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource 资源) System.Collections.Generic.List
1.Enumerator.MoveNextRare() at System.Collections.Generic.List
1.Enumerator.MoveNext()at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext() at Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[T](IEnumerable
1 系列,Action`1动作)in C:\项目\ Ninject \ Maintenance2.2 \ ninject的\ src \ Ninject \基础设施\语言\ ExtensionsForIEnumerableOfT.cs:行 22点 Ninject.OnePerRequestModule.DeactivateInstancesForCurrentHttpRequest() 在 C:\项目\ Ninject \ Maintenance2.2 \ ninject \ SRC \ Ninject \ OnePerRequestModule.cs:线 63在Ninject.OnePerRequestModule.b__0(对象o,EventArgs e)in C:\项目\ Ninject \ Maintenance2.2 \ ninject \ SRC \ Ninject \ OnePerRequestModule.cs:线 36点 System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤, 布尔和放大器; completedSynchronously)
我确实从2011年5月11日的Remo Gloor找到了这个链接,该链接说有一个新的2.4版本已经提到问题将被修复2.4版本。我不确定这个版本是否已发布/可用,因为我无法找到它。 Ninject Runtime Exception occuring frequently - System.InvalidOperationException: Collection was modified; enumeration operation may not execute
有没有人知道解决这个Ninject错误的解决方案或知道在哪里可以找到2.4版本?
这是我使用Ninject 2.2.0.0版进行映射的方式
Bind<IMyEntities>().To<MyEntities>().InRequestScope().WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString);
使用3.0我将其更改为使用
Bind<IMyEntities>().ToConstructor(x => new MyEntities());
或
Bind<IMyEntities>().ToConstructor(x => new MyEntities(ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString));
或
Bind<IMyEntities>().ToConstructor(x => new MyEntities(new EntityConnection (ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString)));
在尝试了上述所有3种不同的方法后,我仍然得到错误。每当第三个构造函数以某种方式被调用时。
我不知道还有什么可以尝试的。我投入了大量时间尝试不同的事情,但仍未得出结论/解决方案。
如果我无法找到/解决这个问题,我将不得不一起删除所有Ninjet参考,并去寻找其他一些DI。