2012-02-13 8 views
1

最近私のWebサイトプロジェクトをNinject 3.0.0-rc3に更新しました。その後、「提供された接続は無効です。またはメタデータ情報。 バージョン2.2.0.0を使用していたとき、これはすべて動作していました。Ninject 3.0.0-rc3にアップグレードした後の接続文字列の例外

何が原因でこの例外が表示され、どのように解決できますか?

私はEFを使用しており、バックエンドはSQL Server 2008 R2です。

答えて

1

私は同じ問題を抱えていましたが、NinjectWebCommon.csのアプローチではなくNinjectHttpApplicationの拡張に戻って修正しました。詳細は、https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-applicationを参照してください。

は仕事にNinject 3アップグレードのために、私は私の結合モジュールに次のバインディングを追加する必要がありました:

 Bind<Func<IKernel>>().ToMethod(ctx =>() => new Bootstrapper().Kernel); 
     Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>(); 

私は、問題の根はNinjectWebCommon.csを適用する前に呼び出されるということだと思います独自のコンテキストを完全に認識しているため、バインディングを設定する際にコンテキストがインスタンス化された場合、Entity Frameworkは接続文字列を解析する方法を理解できません。これは多くのプロジェクトでは問題にはなりませんが、私たちはデータベース構成を使用して、最初にロードするNinjectモジュールを決定します。 GlobalのApplication_Startメソッドは、おそらくアプリケーションのライフサイクルの後の時点で呼び出されるため、グローバルでのバインディングの設定は問題ありません。

関連する問題