2012-07-09 216 views
7

我刚刚安装ELMAH MVC(V2)到我的Web应用程序,但是当我尝试查看在/ ELMAH日志我得到下面的异常ELMAH MVC 2 - 问题与温莎城堡

支持的成分,不该服务Elmah.Mvc.ElmahController发现 [ComponentNotFoundException:否组件用于支持该服务Elmah.Mvc.ElmahController发现] Castle.MicroKernel.DefaultKernel.Resolve(服务类型)140 Castle.Windsor.WindsorContainer.Resolve (类型服务)+40 N2.Engine.Castle.WindsorServiceContainer.Resolve(Type type)+40 N2.Engine.ContentEngine.Resolve(Type ser viceType)+48

该网站包括N2 CMS系统,该系统又使用Castle Windsor。

有关如何解决此问题的任何想法?

回答

0

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

var engine = MvcEngine.Create(); 
engine.RegisterControllers(typeof(GlobalApplication).Assembly); 
engine.RegisterControllers(typeof(ElmahController).Assembly); 
0

ELMAH.MVC来App_Start代码,使用Web.Activator注册ElmahController路线。

所以,我很奇怪,为什么Windor无法加载ElmahController。默认情况下,它应该尝试自己解决它,然后如果不可能委托给ControllerFactory。

你确定应用程序在安装ELMAH后重新启动(iisreset.exe)?

+0

嗨亚历山大,我只是重新测试,以确保我已经重新启动IIS(在这种情况下的IIS Express在开发计算机上)我肯定必须注册Elmah控制器的N2引擎,才能够查看Elmah日志 – FloatLeft 2012-07-09 11:52:37

+0

@alexanderb嘿亚历克斯,我也使用温莎与Elmah.MVC(第一次与这种味道),当我去mysite.com/elmah我得到的消息“没有组件支持服务Elmah.Mvc.ElmahController是发现”。任何提示?另外,除了博客中的点点滴滴之外,我无法在Elmah.MVC上找到任何专门的文档。 – 2012-10-03 17:09:36

+0

@DanB你好,丹,不幸的是它很难从“空气”诊断问题:) ..我想问你一个忙 - 你可以请[github](https:// github。 com/alexanderbeletsky/elmah.mvc)并将“破解”解决方案发送到我的电子邮件地址(在我的个人资料中)。我保证会发现问题并回复解决方案:) – 2012-10-08 16:24:55

15

我知道这已经有一个公认的答案,这不是你的问题完全相关,但对于使用N2和运行与Elmah.MVC +温莎城堡的问题谁都,则需要在注册控制器与温莎组装的Elmah.MVC。我做了一个简单的安装程序来处理这对我来说:

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

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

+0

谢谢。为了使我的集成​​测试能够在团队城市中工作,唯一必须改变的是“Classes.FromAssemblyNamed(”Elmah.Mvc“)”“这个”Classes.FromAssembly(typeof(ElmahController).Assembly)“。一些优化删除了DLL,我得到了“无法加载文件或程序集'Elmah.Mvc'” – 2015-10-14 18:07:35