2011-09-09 6 views
0

서비스 계약을 구현하는 클래스가 있습니다. 이 클래스에서 파생 된 다른 클래스가 차례대로 다른 서비스 계약을 구현합니다.클래스 구현 서비스 다른 클래스의 기본 클래스 계약 WCF

Class A: a.IA 
{ 

} 

Class B: A, b.IB 
{ 

} 

계약서 IB의 끝점을 어떻게 표시합니까?

끝 점이 나는 시도했다 : 나는 이렇게 할 경우

<service name="B"> 
    <endpoint address="ep1" binding="webHttpBinding" contract="a.A1" /> 
    <endpoint address="ep2" binding="webHttpBinding" contract="b.B1" /> 
</service> 

, 그것은 오류를

서비스 'B'복수의 ServiceContract 형식을 구현을 제공하고, 더 엔드 포인트 구성 파일에 정의되지 않습니다. WebServiceHost는 이 기본 끝점을 설정할 수 있지만 서비스가 단일 ServiceContract 만 구현하는 경우에만 가능합니다. 하나의 ServiceContract 만 구현하거나서비스의 끝점을 구성 파일에 명시 적으로 정의하도록 서비스를 변경하십시오.

미리 감사드립니다.

편집

는 config 위 오타가 있었다.

<service name="B"> 
     <endpoint address="ep1" binding="webHttpBinding" contract="a.IA" /> 
     <endpoint address="ep2" binding="webHttpBinding" contract="b.IB" /> 
    </service> 

나는 이것을 위해 사용하고 템플릿은 WCF 나머지 템플릿 4.0

답변

0

서비스를 구현하는 서비스 클래스가 B입니다 (이것은 어떤 차이 만드는 경우) - 그리고 당신은 내가 같은 것을 제대로, 지금까지의 사용을 말할 수있다.

이 서비스 클래스가 구현하는 계약은 IB입니다.하지만 실제로 설정에는 나타나지 않습니다.

이 시도 : 엔드 포인트에서

<service name="B"> 
    <endpoint address="ep1" binding="webHttpBinding" contract="a.IA" /> 
    <endpoint address="ep2" binding="webHttpBinding" contract="b.IB" /> 
</service> 

계약을 서비스 방법을 정의하는 (일반적으로) 서비스 인터페이스를 의미한다 - 그 인터페이스가 적용되는 [ServiceContract] 속성을 가지고 있어야합니다.

오케이 - 오타와 계약이 맞습니다.하지만 제 질문은 다음과 같습니다. a.b. 접두사가 계약서의 네임 스페이스에 있습니까?

그렇다면 서비스 태그가 해당 네임 스페이스를 사용하는 이유는 무엇입니까 ?? name="b.B"으로 변경하면 어떤 차이가 있습니까?

<service name="b.B"> 
    <endpoint address="ep1" binding="webHttpBinding" contract="a.IA" /> 
    <endpoint address="ep2" binding="webHttpBinding" contract="b.IB" /> 
</service> 
+0

오타가 표시되면 a.IA와 b.IB이어야합니다. 그게 내가 시도한, 그리고 그 오류가있어. 두 인터페이스 모두 servicecontract 속성이 있습니다. – genericuser

+0

예. 네임 스페이스입니다. 당신이 제안한 것과 같은 시도, 같은 오류! – genericuser

+0

@ Priya10 : 내 응답을 업데이트했습니다. 서비스의'name = '속성에 네임 스페이스 접두사가 없습니까? –