WCF REST 스타터 키트에서 RequestInterceptor를 사용하여 리디렉터 / 역방향 프록시를 구현할 수 있습니까?
-
15-11-2019 - |
문제
WCF REST 스타터 키트에서 RequestInterceptor를 사용하여 역방향 프록시를 구현하려고 시도하고 있습니다.기본 헤더 속성을 설정하고 호출을 구성 할 수 있습니다.나는 다음과 같은 측면으로 멈추고있다 :
-
적절한 응답을 반환합니다 - 내 WebService는 텍스트 + XML, 이미지 또는 JSON을 반환 할 수 있습니다.나는 적절한 응답 유형을 보낼 수 없습니다.Message.createMessage 과부하는 모두 SOAP 정렬 I.E.E.E.에만 XML 구조체 만 수락하므로 JSON 또는 이미지 스트림을 보낼 수 없습니다.나는 그들을 XElements로 변환해야합니다 - 나는 여기서 뭔가 잘못 뭔가를하고 있습니다.
-
나는 또한 역방향 프록시가 쿠키, gzip / deflate 및 ssl의 존재하에 잘 작동하기를 원한다.
위의 요구 사항을 기반으로, REST 스타터 키트를 사용 하여이 작업을 수행하는 것이 좋습니다고 생각하십니까?RequestInterceptor는 쉽게 연결하기가 쉽지만 코드의 나머지 부분은 나를 견과류로 몰고 있습니다.
해결책
There is a mapping between both JSON and arbitrary binary content to XML which is used in messages for WCF (see some examples at http://blogs.msdn.com/b/carlosfigueira/archive/2011/04/19/wcf-extensibility-message-inspectors.aspx), so you can use Message.CreateMessage to create non-XML messages as well.
Having said that, it's really not intuitive to do that in WCF as of now. The new libraries in the WCF Web API - http://wcf.codeplex.com - provide a very nice way of intercepting / redirecting / bypassing the WCF pipeline especifically for HTTP messages. Also, it support multiple formats in a native way (i.e., without need to do some mapping to XML).