2012-11-23 92 views
1

我想讓Castle Windsor使用WcfFacility創建我的WCF。我遵循這個教程。 http://www.codeproject.com/Articles/426770/Dependency-Injection-in-WCF-using-Castle-Windsor但它似乎不適合我。我收到以下錯誤。Castle Windsor WcfFacility錯誤。忘記註冊組件?

找不到名爲ActionService.ServiceImplementations.ActionWebService的組件,您忘記註冊了嗎?

我的應用程序的結構如下所示。對於Web服務(僅限於SVC文件,而後面的代碼,web.config中和的Global.asax)

二期工程的合同,並實現

一個項目。這是IActionWebService和ActionWebservice駐留的地方。

我有第一個參考後者。

這是我的全球asax。

public class Global : System.Web.HttpApplication 
{ 
    IWindsorContainer container; 
    protected void Application_Start(object sender, EventArgs e) 
    { 
     container = new WindsorContainer(); 

     container.AddFacility<WcfFacility>() 
      .Register(
      Component.For<IAuthService>().ImplementedBy<AuthService>(), 
      Component.For<IUserRepository>().ImplementedBy<UserRepository>(), 
      Component.For<IActionWebService>().ImplementedBy<ActionWebService>().Named("ActionWebService") 
      ); 
    } 

這是我的svc文件。

<%@ ServiceHost 
Language="C#" 
Debug="true" 
Service="ActionService.ServiceImplementations.ActionWebService" 
Factory="Castle.Facilities.WcfIntegration.DefaultServiceHostFactory, Castle.Facilities.WcfIntegration" %> 

我已經去通在這裏的其他問題和其他博客,但他們的解決方案沒有得到任何幫助我:(。

任何人都可以指向其中的錯誤可能會發生?

編輯 我連着監視窗口捕獲。在那裏,你可以看到,所有的物體似乎被加載。但它不解決這些問題。

Here you can see that the actual objects are loaded in the container. It just doesn't resolve them

+0

沒關係球員,找到了原因。在我的服務聲明中,我有整個程序集+命名空間+類,並且與global.asax中的命名屬性不匹配......好像我仍然受到土耳其和甜土豆泥的影響... :) –

回答

0

我有相同的錯誤

解決它在字符串參數註冊,我把它與完整的命名空間這樣的東西。

protected void Application_Start(object sender, EventArgs e) 
    { 
     IWindsorContainer container = new WindsorContainer(); 

     container.AddFacility<WcfFacility>().Register(
      Component.For<IActivityLogsRepository>().ImplementedBy<ActivityLogsRepository>(), 
      Component.For<IActivityLogsService>().ImplementedBy<ActivityLogsService>() 
       .Named("Company.ServiceImplementation.ActivityLogsService"), 

我希望這可以幫助你

+0

嗨Kmilo。是的,如果你看看我的評論,我自己解釋了錯誤。謝謝你的迴應。 –

相關問題