2010-02-25 5 views
15

나는 WCF와 SUDS (Python) 사이에서 상속이 어떻게 표현되는지에 관해 질문이있다. 나는 C++/CLI WCF 서버 (.NET 3.5 SP1)를 가지고 있고 그것과 통신하려고하고있다. 나는 C# (WCF도) 클라이언트를 사용해 왔지만 제대로 작동하지만 SUDS 클라이언트 (Python 2.6.4, SUDS 0.3.8)를 사용할 때 문제가 있습니다. 대부분 괜찮지 만 상속 된 유형의 경우에는 차이점이 SOAP XML의 상속을 나타내는 방식 인 것으로 보입니다.상속을위한 WCF와 Python SUDS의 XML 차이점은 무엇입니까?

C#을 클라이언트 : I는 서버 로그, 나는 다음과 같은 결과를 얻을 메시지를 볼 때

<ns:DerivedType> 
... 
</ns:DerivedType> 

파이썬 클라이언트 :

<ns:BaseType xsi:type="ns:DerivedType"> 
... 
</ns:BaseType> 

IT는 WCF를 변경할 수 있습니다 서버가 파이썬 스타일을 받아들이겠습니까? 또는 WCF 스타일을 보내도록 Python SUDS 클라이언트를 변경 하시겠습니까? 어느 것이 옳은가요?

+1

더 많은 코드 샘플을 게시 할 수 있습니까? – Daenyth

+0

+1이 주제. 우리는 .net으로 개발 된 SOAP 서버와 통합하는 데에도 문제가있었습니다. – Eduardo

답변

1

파이썬 측면에 대해서는 잘 모릅니다. 그러나 WCF 측면에는 몇 가지 옵션이 있습니다. 보다 직선적 인 foward 옵션은 파이썬 생성 비누를 감지하여 WCF 서비스에서 좀 더 맛있는 것으로 변환하기 위해 message inspector을 생성하는 것입니다.

더 어렵지 만 "순수한"옵션은 WCF 서비스에서 생성 된 WSDL을 모양 짓는 방법을 결정하는 것이므로 파이썬 클라이언트가 앞서 언급 한 맛있는 비누를 만들 수 있습니다. 필요한 조정을 찾으면 DataContract 대신 the MessageContract classes을 사용하여 서비스에서 조정 된 WSDL을 생성합니다. .NET 클라이언트는이 조정 된 WSDL을 불만없이 처리해야합니다.

관련 문제