2012-05-01 2 views
0

캐슬을 사용하지 않을 때 (다른 코드가 정확한 것을 보여줍니다) 매우 잘 작동하는 서비스가 있습니다. 나는 다음에 내 SVC 파일을 변경 :캐슬 윈저에 wcf 서비스 등록하기

<%@ ServiceHost Service="Reporting.WebService.ReportingWebService" Factory="Castle.Facilities.WcfIntegration.DefaultServiceHostFactory, Castle.Facilities.WcfIntegration" %> 

하고 다음과 같이 XML을 사용하여 서비스를 등록 :

<component id="Reporting.WebService.ReportingWebService" 
      service="Reporting.WebService.IReportingWebService, Reporting.WebService" 
      type="Reporting.WebService.ReportingWebService, Reporting.WebService"> 
</component> 

그러나 나는 다음과 같은 오류가 점점 오전 :

[InvalidOperationException: Could not find a component with name Reporting.WebService.ReportingWebService, did you forget to register it?] Castle.Facilities.WcfIntegration.WindsorServiceHostFactory`1.CreateServiceHost(String constructorString, Uri[] baseAddresses) 
.... 

어떤 생각을 왜 등록되지 않았습니까? ?

<facilities> 
    <facility id='wcf' 
      type='Castle.Facilities.WcfIntegration.WcfFacility, 
       Castle.Facilities.WcfIntegration' /> 
</facilities> 

및 ReportingWebService 다른 어셈블리에 implimented된다

---- 갱신 ----

나는 윈저 구성이 있습니다.

+0

웹 사이트와 동일한 어셈블리 또는 별도의 어셈블리에 ReportingWebService가 있습니까? WcfFacility를 등록 했습니까? – Bronumski

+0

질문에 대한 업데이트를 참조하십시오. – mans

+0

업데이트에서 뭔가를 놓친 것 같아서 :). 나는 그것이 내게 아이디어를 주었다고 생각하지 않는다. – Bronumski

답변

2

와이어가 잘못되어있어 조립품을 찾지 못했거나 유형이로드되지 않았다고 생각하는 경우가 있습니다. 웹 서비스가 다른 어셈블리에서 참조되므로 웹 서비스에서 참조되어 있는지 확인하십시오. 또는 Global.asax 코드에서 어셈블리를 참조하고 형식을로드하도록 강요하는 코드로 전환하십시오.

var container = new WindsorContainer(); 
container.AddFacility<WcfFacility>() 
     .Register(Component.For<IReportingWebService>().ImplementedBy<ReportingWebService>()); 

//Additional wire up 

//If you are using Windsor 3.0 and above then the following is not needed 
DefaultServiceHostFactory.RegisterContainer(container.Kernel); 
+0

감사합니다. 어떤 방식 으로든 내 프로젝트에서 직접 참조하지 않는 방식으로 구성에 일부 어셈블리를 추가 할 수 있습니까? 그렇지만 Windows에서이 어셈블리를로드하고 obkect를 사용합니다. – mans

+0

@ user654019 dll을 수동으로 삭제하고 새 dll을 사용하도록 구성을 업데이트하려는 것입니까? – Bronumski

+0

예, 서비스 구현에 대한 참조가없고, 인터페이스 정의가있는 프로젝트에 대한 참조 만 있는지 확인하고 싶습니다. – mans