7

一部の環境では、アプリ プールのリサイクル後に次のエラーが発生しています。

IControllerFactory のインスタンスが、ControllerBuilder.GetControllerFactory のカスタム登録済みプロバイダーと同様に、リゾルバーで見つかりました。どちらか一方のみを設定してください。

このブログで指摘されているように、ControllerBuilder を使用してコントローラー ファクトリを登録するのではなく、IDependencyResolver のみを使用しています。

Castle Windsor (一見無関係) をコンテナーとして使用し、Global.asax の Application_Start で、最初にすべての依存関係を登録し、次を呼び出して IDepencencyResolver を登録します。

DependencyResolver.SetResolver(new WindsorDependencyResolver(IoC));

この例外の原因は何ですか? どんな助けでも大歓迎です。

4

2 に答える 2

0

参考までに、同じエラーメッセージが表示されました(ninjectを使用)。アプリケーションが他のマシンでうまく起動したため、理由がわかりません。キャッシュをクリアしようとしました...しかし、エラーがまだ存在していました。リポジトリでチェックアウトをやり直しましたが、問題ありませんでした...

于 2015-05-11T12:21:57.730 に答える
0

Castle Windsor で MVC DependencyResolver を使用することは、設計上の欠陥があるためお勧めしません。リリースすべきときにサービス インスタンスをリリースしません。完全な説明については、この記事を参照してください。

代わりに、カスタム ファクトリを使用してコントローラーに依存関係を注入するWindsor のドキュメントに示されている方法を使用してください。

于 2013-06-21T09:31:25.453 に答える