그래서 몇 가지 문제로 인해 처음에는 단일 인터페이스 계약을 두 개의 개별 계약으로 분리했습니다. 이제는 두 인터페이스를 모두 구현하는 클래스가 하나 뿐이므로 WCF를 통해 REST 서비스로 모두 사용할 수있게하려고합니다. 계약 내용은 다음과 같습니다.서비스가 여러 ServiceContract 유형을 구현하는 경우 Restful Service가 ServiceActivationException을 발생시킵니다.
WCF 서비스 호스트 용으로 Autofac을 사용하고 있습니다. Factory="Autofac.Integration.Wcf.AutofacServiceHostFactory, Autofac.Integration.Wcf"
RESTful 서비스의 경우 : Factory="Autofac.Integration.Wcf.AutofacWebServiceHostFactory, Autofac.Integration.Wcf"
WCF 예 : 아래
는 WCF 서비스에 대한 내 SVC는 파일 코드입니다
WCF 서비스에 대한
public interface IEmployeeCommandService {}
public interface IEmployeeQueryService {}
public partial class EmployeeService : IEmployeeCommandService {}
public partial class EmployeeService : IEmployeeQueryService {}
public partial class EmployeeService {}
<service behaviorConfiguration="ServiceBehavior" name="Application.EmployeeService">
<endpoint address="" binding="basicHttpBinding" contract="Application.IEmployeeCommandService" />
<endpoint address="" binding="basicHttpBinding" contract="Application.IEmployeeQueryService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
그리고 내 EmployeeService.svc 코드
이하로하는 것이이 방법으로<%@ ServiceHost Service="Application.EmployeeService, Application"
Factory="Autofac.Integration.Wcf.AutofacServiceHostFactory, Autofac.Integration.Wcf"%>
처럼 나를 위해 잘 작동 일반 WCF 서비스를 보이는 것처럼
그리고 내 Web.config 파일 보인다. EmployeeService.svc 찾아보기 명령 & 쿼리 서비스 작업을 모두 볼 수 있습니다.
simillar approach 나는 아래와 같이 RESTFul 서비스를 시도하고있다. 하지만 내 RESTFul 서비스를 탐색 할 때 오류가 발생합니다.
: 편안하고 예 :
public interface IEmployeeRESTfulQueryService {}
public interface IEmployeeRESTfulCommandService {}
public partial class EmployeeRESTfulService {}
public partial class EmployeeRESTfulService : IEmployeeRESTfulCommandService {}
public partial class EmployeeRESTfulService : IEmployeeRESTfulQueryService {}
그리고 내 web.confing 보인다 같은 아래
<service behaviorConfiguration="ServiceBehavior" name="Application.EmployeeRESTfulService">
<endpoint name="Command" address="Command" behaviorConfiguration="webHttp" binding="webHttpBinding" contract="Application.IEmployeeRESTfulCommandService" />
<endpoint name="Query" address="Query" behaviorConfiguration="webHttp" binding="webHttpBinding" contract="Application.IEmployeeRESTfulQueryService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<behavior name="webHttp">
<webHttp helpEnabled="true" automaticFormatSelectionEnabled ="true" />
</behavior>
내 SVC는 (: 편안를) 검색하면 I endup 아래 에러 ..
오류 :
서비스 'EmployeeRESTfulService'는 여러 ServiceContract 유형을 구현하며 구성 파일에는 엔드 포인트가 정의되어 있지 않습니다. WebServiceHost는 서비스가 단일 ServiceContract 만 구현하는 경우에만 기본 끝점을 설정할 수 있습니다. 어느