7

ELMAH MVC(v2)をWebアプリケーションにインストールしたばかりですが、/ elmahでログを表示しようとすると、次の例外が発生します。

サービスElmah.Mvc.ElmahControllerをサポートするコンポーネントが見つかり ませんでした[ComponentNotFoundException:サービスElmah.Mvc.ElmahControllerをサポートするコンポーネントが見つかりませんでした] Castle.MicroKernel.DefaultKernel.Resolve(Type service)+140 Castle.Windsor.WindsorContainer.Resolve (タイプサービス)+40 N2.Engine.Castle.WindsorServiceContainer.Resolve(タイプタイプ)+40 N2.Engine.ContentEngine.Resolve(タイプサービスタイプ)+48

このWebサイトには、CastleWindsorを使用するN2CMSシステムが含まれています。

これを解決する方法について何かアイデアはありますか?

4

3 に答える 3

15

これにはすでに受け入れられている答えがあり、あなたの質問に完全に関連しているわけではありませんが、N2を使用しておらず、Elmah.MVC + Castle Windsorで問題が発生している場合は、Elmah.MVCアセンブリにコントローラーを登録する必要があります。ウィンザー。これを処理するための簡単なインストーラーを作成しました。

public class ElamhInstaller : IWindsorInstaller
{
    public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.Register(Classes.FromAssemblyNamed("Elmah.Mvc")
            .BasedOn<IController>()
            .LifestyleTransient());
    }
}

ElmahController私がこの城を追加すると、ちょうどいいものを見つけることができるようです。

于 2012-11-26T20:58:24.070 に答える
0

質問を投稿した直後に解決策を見つけました。ElmahコントローラーをN2に登録する必要がありました。

var engine = MvcEngine.Create();
engine.RegisterControllers(typeof(GlobalApplication).Assembly);
engine.RegisterControllers(typeof(ElmahController).Assembly);
于 2012-07-09T09:34:54.910 に答える
0

ELMAH.MVCには、Web.Activatorを使用してElmahControllerルートを登録するApp_Startコードが付属しています。

だから、なぜウィンダーがElmahControllerのロードに失敗するのか、私には奇妙です。デフォルトでは、それ自体で解決を試み、不可能な場合はControllerFactoryに委任する必要があります。

ELMAHをインストールした後、アプリケーションが再起動しました(iisreset.exe)。

于 2012-07-09T10:56:35.553 に答える