8

asp.net Web API プロジェクトで ninject を使用していますが、この断続的な ninject エラーが発生し始めました。

Ninject コンポーネント ICache のロード中にエラーが発生しました。カーネルのコンポーネント コンテナーにそのようなコンポーネントは登録されていません。

私は使用しています:

  • ニンジェクト 3.0.1.10
  • Ninject.MVC3 3.0.0.6
  • Ninject.Web.Common 3.0.0.7

それらはすべて、NuGet を使用してプロジェクトに取り込まれます。モジュールを IocConfig.RegisterIoc にロードし、その他の変更や微調整は行っていません。

無関係かもしれませんが、コンストラクターの 1 つに IKernel を注入し始めたのとほぼ同時に、問題が発生し始めました。「特別なリゾルバー」について読んだので、これに対するバインディングを設定しませんでした。

私はここで多くの同様の質問を読みました:

Ninject +「Ninject コンポーネント ICache のロード中にエラーが発生しました」

MVC3 プロジェクトの Ninject と ChildKernel:「Ninject コンポーネント ICache の読み込み中にエラーが発生しました」

ランダムに発生する Ninject 例外:「Ninject コンポーネント ICache の読み込み中にエラーが発生しました」

これらのケースのそれぞれで、OP には私と同じエラーがありますが、解決策は適切ではありません - 私は子カーネルを作成しておらず、バグのあるバージョンの ninject を使用していません。

4

1 に答える 1

5

解決策を見つけたので、共有したいと思いました。

問題は、Web-API のパッケージが間違っていると思われる Ninject.MVC3 を使用していたことです。

代わりに、この投稿で説明されているように、Ninject.Web.WebApi-RC パッケージを使用する必要があります。

http://www.eyecatch.no/blog/2012/06/using-ninject-with-webapi-rc/

修正のために私が従った手順は次のとおりです

  • Ninject.MVC3 と Ninject.Web.Common をアンインストールしました
  • App_Start フォルダーからすべての ninject ファイルを削除します。
  • nuget から Ninject.Web.Common と Ninject.Web.WebApi-RC をインストールします。
  • モジュールを NinjectWebCommon.RegisterServices() にロードします
于 2013-02-08T11:29:15.697 に答える