2012-10-30 3 views
1

흥미로운 작업이 있습니다. 나는 2 개의 wcf 종점이있다. 에있는 각 끝점은 서로 다른 주소입니다. 끝점은 클라이언트에 에 노출되지 않습니다. 추가 엔드 포인트가 인데이 엔드 포인트를 통해서만 클라이언트에 노출되며 다른 두 엔드 포인트가 호출 될 수 있습니다. 일부 입력 클래스에 따라 을 호출해야하고 응답해야합니다. 응답 XML을 응답 XML로 변환해야합니다.WCF의 비누 메시지 수정

제 해결책은 비어있는 운영 계약 을 만들고 끝 요청 이벤트에서 을 트리거하는 HTTP 모듈을 구현하는 것입니다. 입력 매개 변수 을 기반으로 두 끝점 중 하나에 SOAP 요청을 만들고 그 결과를 결과 XML로 전송합니다.

대신 메시지 검사자 을 사용해야합니까? 비슷한 문제를 만났습니까?

+0

당신이하려는 일에 대해 더 많은 정보를 제공 할 수 있습니까? 어쩌면 몇 가지 코드 예제. 모든 엔드 포인트가 단일 서비스입니까? 주 엔드 포인트가 라우터 서비스 일 수 있습니까? 빈 작업 계약 대신 Message를 매개 변수로 사용할 수 있습니다. http://msdn.microsoft.com/en-us/library/ms734675.aspx – EdmundYeung99

+0

주 끝점은 경로 서비스입니다. 그것은 tnput 매개 변수, 일부 복합 유형을 수신합니다. 이를 기반으로 클라이언트에 노출되지 않는 두 개의 끝점 중 하나를 호출해야합니다. 각 엔드 포인트는 결과 XML을 다른 형식으로 리턴합니다. 서비스는 결과를 하나의 형식으로 형식화해야합니다. –

답변

0

HTTP 모듈에서 구현하기 시작했습니다. 문제는 WCF 메서드 복합 유형 반환, deserelization 오류가 발생했습니다. 따라서 IoperationInvoker 특성을 구현했습니다. 행동에 추가됨. 입력 매개 변수에 기초하여 기계 가공 서비스 및 desreliaze 객체를 내 자체 호출합니다.