Как сохранить информацию заголовка в пользовательской привязке WCF HTTP - PullRequest
1 голос
/ 06 августа 2009

По сути, я хочу получать HTTP-запросы из другого источника, чем сокет прослушивания. Тем не менее, поскольку предоставленные привязки не поддерживают это, в настоящее время я создаю свою собственную привязку.

Моя текущая привязка состоит из WebMessageEncoder и пользовательского TransportBindingElement, который ссылается на пользовательский ChannelListener, который использует пользовательский канал, который реализует интерфейс IReplyChannel. ServiceModel вызывает метод receiveRequest, который впоследствии должен вернуть RequestContext.

Однако класс RequestContext содержит только свойство RequestMessage, в которое я должен поместить объект Message. На данный момент я не уверен, куда поместить все заголовки HTTP, которые необходимы для сопоставления на UriTemplates в атрибутах WebGet / WebInvoke.

Не могли бы вы помочь мне с этим? :)

Привет

1 Ответ

1 голос
/ 06 августа 2009

Диспетчер WebHttp рассматривает две вещи из того, что я помню:

  • HttpRequestMessageProperty, который вы должны создать и сохранить в коллекции Properties сообщения запроса, созданного вашим транспортным каналом.
  • URL-адрес, связанный с запросом, который необходимо убедиться, что ваш транспортный канал заполняется перед передачей сообщения в стек каналов (это следует сохранить в msg.Headers.To).
...