2009-08-06 6 views
1

기본적으로 HTTP 요청을 수신 대기 소켓과 다른 소스에서 가져 오려고합니다. 그러나 제공된 바인딩이이를 지원하지 않기 때문에 현재 내 바인딩을 구축 중입니다.사용자 지정 WCF HTTP 바인딩에 헤더 정보를 저장하는 방법

현재 바인딩은 WebMessageEncoder와 IReplyChannel 인터페이스를 구현하는 사용자 지정 채널을 사용하는 사용자 지정 ChannelListener를 참조하는 사용자 지정 TransportBindingElement로 구성됩니다. ServiceModel은 나중에 "RequestContext"를 리턴해야하는 "receiveRequest"메소드를 호출합니다.

그러나 RequestContext 클래스에는 Message 개체에 넣어야하는 RequestMessage 속성 만 포함되어 있습니다. 이 사실에 따라 WebGet/WebInvoke 특성의 UriTemplates에서 일치해야하는 모든 HTTP 헤더를 어디에 둘 것인지 확신 할 수 없습니다.

도와 주시겠습니까? 내가 기억하는 것과 :)

인사말

답변

1

WebHttp 디스패처는 두 가지를 본다 :

  • 사용자에 의해 생성 된 요청 메시지의 Properties 컬렉션에서 작성해야 HttpRequestMessageProperty 및 저장 전송 채널.
  • 메시지를 채널 스택으로 전달하기 전에 전송 채널이 채워지도록하려는 요청과 관련된 URL입니다 (msg.Headers.To에 저장해야 함).
관련 문제