ELMAH MVC 2 - Castle Windsor的问题

Flo*_*eft 7 asp.net-mvc elmah

我刚刚将ELMAH MVC(v2)安装到我的Web应用程序中,但当我尝试在/ elmah查看日志时,我得到以下异常

用于支持该服务Elmah.Mvc.ElmahController没有组分被发现 [ComponentNotFoundException:用于支撑所述服务Elmah.Mvc.ElmahController没有组分被发现] Castle.MicroKernel.DefaultKernel.Resolve(服务类型)140 Castle.Windsor.WindsorContainer.Resolve (服务类型)40 N2.Engine.Castle.WindsorServiceContainer.Resolve(类型类型)40 N2.Engine.ContentEngine.Resolve(类型的serviceType)48

该网站包括N2 CMS系统,后者又使用Castle Windsor.

关于如何解决这个问题的任何想法?

Tie*_* T. 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());
    }
}
Run Code Online (Sandbox Code Playgroud)

一旦我添加这个城堡似乎能够找到ElmahController就好了.


Flo*_*eft 0

发布问题后不久就找到了解决方案。我需要向 N2 注册 Elmah 控制器:

var engine = MvcEngine.Create();
engine.RegisterControllers(typeof(GlobalApplication).Assembly);
engine.RegisterControllers(typeof(ElmahController).Assembly);
Run Code Online (Sandbox Code Playgroud)