2012-07-09 69 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