2011-03-11 6 views
0

WCF SOAP 애플리케이션을 구축 중입니다. WSDL 파일에는 많은 인수가있는 많은 연산이 있습니다. WSDL 파일은 모든 soapAction 속성을 " ''"로 정의합니다. 그런 서비스를 시작하려고 할 때 WCF는 soapActions가 고유해야한다는 예외를 던집니다.WCF는 발송할 작업을 어떻게 결정합니까?

Google 검색 중 일부는 이전보다 훨씬 혼란 스럽습니다. 필자는 SOAPUI를 사용하여 동일한 입력 유형을 사용하는 두 작업을 모의 서비스로 만들고 정의 된 soapActions없이 항상 동일한 작업을 선택했습니다. 동작이 정의되면 제대로 작동합니다.

내 질문은 :

  • 당신은 독특한 soapActions (원래 WSDL에 정의 된대로 실제로 soapActions을 " '' '떠나)없이 WCF SOAP 서비스를 만들 수 있습니까?
  • 서비스가 soapAction을 정의하지 않고 올바른 작업을 어떻게 선택할 수 있습니까?

편집 : WSDL을 제어 할 수 없습니다. WSCF.Blue 도구를 사용하여 WSDL 파일에서 서비스 스텁을 작성합니다. WSDL을 수정할 수는 있지만, 그대로 둘 수있는 가능성이 있는지 알고 싶습니다.

+0

WSDL을 제어하는 ​​경우 고유 한 soapAction 값을 만들어야합니다. 귀하의 답변은 –

답변

2

귀하의 질문에 명확하지 않지만, 일부 정의 된 WSDL을 기반으로 서비스를 작성하고 있습니다. 그렇지 않습니까? WCF는 BasicHttpBinding을 사용하는 WCF 서비스에서 제공하는 WS-I Basic Profile 1.1의 일부이기 때문에 기본적으로 SOAP 동작을 사용합니다. 빈 SOAP 액션을 가진 WSDL은 액션이 루트 본문 요소에 의해 정의 될 때 사용됩니다.

WCF 샘플은 루트 본문 요소로 작업에 메시지를 라우팅 할 수있는 custom DispatchOperationSelector의 예를 제공합니다. 이것은 아마도 제공된 WSDL에 기반한 클라이언트가 호출 할 수 있도록 서비스에 추가해야하는 것입니다.

+0

Tnx입니다. 문제는 여러 작업이 동일한 입력 인수 형식을 저장하기 때문에 사용자 지정 DispachOperationSelector를 사용하는 경우에도 내 응용 프로그램이 어떤 작업을 전달 할지를 알 수있는 방법을 알 수 없다는 것입니다. SOAPUI를 사용하여 모의 서비스를 만들려고했는데 SOAPUI가 soapAction을 정의하지 않고 올바른 작업을 선택하지 못했습니다. – rusbi

+0

어떻게 웹 서비스 WSDL을 얻었습니까? –

+0

표준의 일부 ... – rusbi

관련 문제