我在我的web项目中使用了以下2个Ninject程序集。Ninject投掷“集合被修改;枚举操作可能不会执行”错误
Ninject.dll – Version 2.2.0.0
Ninject.Web.dll – Version 2.2.0.4
我注意到,当我执行我得到在我这都指向Ninject例外服务器上负载测试
消息:集合已修改;枚举操作可能不会执行 。堆栈跟踪:在 System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource 资源)在 System.Collections.Generic.List
1.Enumerator.MoveNextRare() at System.Collections.Generic.List
1.Enumerator.MoveNext()在 System.Linq.Enumerable.WhereSelectListIterator 系列,Action`1行动)在 C:\项目\ Ninject \ Maintenance2.2 \ ninject \ SRC \ Ninject \基础设施\语言\ ExtensionsForIEnumerableOfT.cs:线 Ninject.OnePerRequestModule.DeactivateInstancesForCurrentHttpRequest() 在 C:\项目\ Ninject \ Maintenance2.2 \ ninject \ src \ Ninject \ OnePerRequestModule.cs:行 63 at Ninject.OnePerRequestModule.b__0(Object o,EventArgs e) c:\ Projects \ Ninject \ Maintenance2.2 \ ninject \ src \ Ninject \ OnePerRequestModule.cs:行 36 at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep一步, 布尔& completedSynchronously)
我没有找到雷莫Gloor日2011年5月11日这个链接,说有已经提到这个问题一个新的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>().ToConstructor(x => new MyEntities());
或
Bind<IMyEntities>().ToConstructor(x => new MyEntities(ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString));
映射
Bind<IMyEntities>().To<MyEntities>().InRequestScope().WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString);
用3.0的方式
或
Bind<IMyEntities>().ToConstructor(x => new MyEntities(new EntityConnection (ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString)));
尝试所有上述提到的3种不同的方式后,我仍然收到错误。每次第三个构造函数都会以某种方式被调用。
我不知道还有什么可以尝试的。我花了很多时间尝试不同的事情,仍然没有得出结论/解决方案。 如果我无法找到/解决这个问题,我将不得不一起删除所有Ninjet参考,并去其他一些DI。
感谢您的信息。 Ninject 3.0.0-rc3是预发布版本Candiate。如果是的话,你会发布什么时候发布? – user1202347 2012-02-10 21:49:47
它是,但现在它将在几天内与上行版本100%二进制兼容。 – 2012-02-11 10:42:12
好的,谢谢。在我更新我的web项目以使用3.0版本后,我收到一个错误“无法找到类型或名称空间名称NinjectHttpApplication”。你能帮我找到版本3.0的文档,以及2.2.0.0和3.0之间的变化。 – user1202347 2012-02-13 16:00:30