2010-11-24 2 views
0

일부 ws 메서드를 만들기 위해 .NET 4.0, WCF 및 wshttp 바인딩을 사용하고 있습니다. wsHttp 바인딩을 사용하는 이유는 인증, 암호화 및 서명에 대한 지원이 필요하다는 것입니다.WCF, wsHttpBinding 및 wsp : policy

그런 서비스를 만들고 wsdl을 조사하면 거기에 wsp : policy 태그가 있음을 알 수 있습니다. 어떻게 든 WCF 구성에 영향을주고이 태그를 제거 할 수있는 방법이 있습니까?

이 태그가 없으면 암호화와 서명이 가능하다는 것을 알고 있습니다.

답변

2

생성 된 WSDL을 사용자 고유의 WSDL (serviceMetadata - externalMetadataLocation)으로 바꿀 수 있습니다. 이것은 WSDL을 처음부터 작성하기 때문에 원하는 것을 얻을 수있는 유일한 방법입니다. 생성 된 WSDL 및 정책 - IWsdlExportExtensionIPolicyExportExtension의 수정을위한 확장 성 포인트가 있지만 WSDL에 새 항목을 추가 할 수 있지만 API 기능 (빌드 - 인 보안 등)으로 추가 된 항목은 제거 할 수 없다고 생각합니다.

btw. IMHO WSDL은 서비스를 기술해야하고 개발자가 클라이언트 애플리케이션을 작성하는 데 필요한 유일한 설명이어야하므로 정책을 제거하는 것은 매우 나쁜 생각입니다. 정책을 제거하면 WSDL은 서비스에 대한 부분 정보 만 포함하므로 쓸모 없게됩니다. 확실히 프록시 생성 도구와의 호환성을 제압 할 것입니다. 나는이 주제에 대해 question과 관련이 있었다.

+0

안녕하세요 Ladislav, 10x 응답. 그 이유는이 태그로 인해 문제가 발생할 수있는 일부 Java 시스템에서 내 WS를 사용하기 때문입니다. 이 태그를 내 wsdl 정의의 일부로 유지하기 위해 귀하의 발언을 염두에 두겠습니다. 하나의 관련 질문, externalSetadataLocation 속성을 사용하여 XSD 정의에 대한 경로를 정의하거나 wsdl에만 사용할 수 있습니까? – buhtla

+0

XSD는 WSDL에서 참조되므로 구성시 경로를 지정할 필요가 없습니다. WSDL로 지정합니다. –

+0

흥미 롭다. (관련해서) 2015 년과 나는 아직도이 태그 때문에 문제가있는 Java 소비자가있다. 이렇게 많은 수의 고객이 사용할 수없는 경우 MS는이를 제거 할 수있는 방법을 제공하기를 바랍니다. – hal9000