2012-02-10 7 views
1

Webプロジェクトで次の2つのNinjectアセンブリを使用しています。Ninject throwing "コレクションが変更されました。列挙操作が実行されない可能性があります"エラー

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 \ Ninject.OnePerRequestModule.b__0(Object o、EventArgs)のメンテナンス。 Cの電子):\プロジェクト\ Ninject \ Maintenance2.2 \ ninject \ SRC \ Ninject \ OnePerRequestModule.cs: System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute(のライン 36)私は、問題があること言及した新しい2.4バージョンがあると言う2011年5月11日付けのレモGloorから、このリンクを見つけた

System.Web.HttpApplication.ExecuteStepで (IExecutionStepステップ、 ブール& completedSynchronously) 2.4バージョンが修正されます。このバージョンがリリースされたかどうかはまだわかりませんが、見つけられません。 Ninject Runtime Exception occuring frequently - System.InvalidOperationException: Collection was modified; enumeration operation may not execute

このNinjectエラーを解決する解決策を知っている人はいますか?2.4バージョンはどこにありますか?


これは私が

Bind<IMyEntities>().ToConstructor(x => new MyEntities()); 

または

Bind<IMyEntities>().ToConstructor(x => new MyEntities(ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString)); 
を使用するように変更しNinject

3.0を使用して
Bind<IMyEntities>().To<MyEntities>().InRequestScope().WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString); 

のバージョン2.2.0.0を使用してマッピングを行っている方法です

または

Bind<IMyEntities>().ToConstructor(x => new MyEntities(new EntityConnection (ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString))); 

上記の3つの方法をすべて試しても、私はまだエラーが発生しています。 3番目のコンストラクタが何とか呼び出されるたびに。
私は他に何を試すべきか分かりません。私は、いろいろなことを試しても結論/解決には至らず、とても良い時間を費やしています。 この問題を何とか見つける/解決できない場合は、Ninjetのすべての参照をまとめて削除し、他のDIを使用する必要があります。

答えて

0

2.4は、わずかなインターフェイスの非互換性のため3.0になっています。http://www.nuget.org/packages/Ninject/3.0.0-rc3

+0

ありがとうございます。 Ninject 3.0.0-rc3は、リリース前の候補ですか?もしそうなら、それはいつリリースされますか? – user1202347

+0

それは今のところ、数日後にアップデーティングリリースと100%バイナリ互換性があります。 –

+0

ありがとう、ありがとう。 3.0バージョンを使用するようにWebプロジェクトを更新した後、「タイプまたは名前空間の名前 'NinjectHttpApplication'を見つけることができませんでした」というエラーが発生しました。私は、バージョン3.0のドキュメントと2.2.0.0と3.0の間で何が変わったのかを知る助けてください。 – user1202347

関連する問題