2010-02-09 4 views
1

AJAX 지원 WCF 서비스가 있으며 모든 것이 ajax 끝점에서 제대로 작동합니다. 이제는 AJAX 인터페이스의 하위 집합 인 다른 인터페이스에 해당하는 다른 wsHttpBinding 엔드 포인트를 추가하고 싶습니다. 즉, 특정 메소드 만 WSDL에 표시하려고합니다. 두 인터페이스를 구현하는 클래스가 있지만 서비스 주소 MyService.svc? wsdl을 방문하면 두 서비스에 대한 메타 데이터가 포함됩니다. 이 작업을 수행하려면 WCF를 어떻게 구성 할 수 있습니까? 이 서비스는 IIS의 웹 사이트 응용 프로그램에서 호스팅됩니다.AJAX 가능 WCF 서비스에 다른 인터페이스를 구현하는 끝점 추가

어쩌면 나는 개념을 얻지 못하고 서비스가 인터페이스에 해당하므로 2 개의 인터페이스가있는 경우 2 개의 서비스 (예 : 2 .svc 파일)가 있습니다.

답변

2

WCF가 노출하는 WSDL/MEX 끝 점이 특정 계약이 아닌 서비스에 대한 정보를 제공한다는 점에서 문제가 있습니다. 따라서 서비스에서 지원하는 모든 계약에 대한 메타 데이터를 노출합니다.

확실히 다른 .svc 파일로 분할 할 수 있습니다. 따라서 서로 다른 계약서가있는 여러 서비스 인 것처럼 보입니다.

WCF의 WSDL 생성이 REST와 같은 서비스 (AJAX 물건 포함)에 너무 유용하다는 것을 발견하지 못했고, 종종 방해가 될 수 있으므로 때로는 해제하기도합니다.

+0

AJAX에 대한 WSDL은 신경 쓰지 않습니다. SOAP 물건에 대한 WSDL을 원하지만 AJAX 호출에 대해서만 존재하는 다른 메서드를 숨길 수는 없습니다. – Stilgar

+0

그렇다면 반드시 그들을 "별도의"서비스 (두 개의 .svc 파일)로 노출하고 공통 구현을 그대로 유지하십시오. 그렇게 깨끗해. – tomasr

+0

감사합니다. 나는 그 길로 가고 있었지만 더 나은 WCF-y 방법이 있는지 궁금해하고있었습니다. – Stilgar

관련 문제