Доступ к заголовкам HTTP из службы WCF - PullRequest
1 голос
/ 25 июля 2011

Мне нужен доступ к заголовкам ответа HTTP, которые должны быть возвращены клиенту из службы WCF.Доступ к HTTPContext прост (через HttpContext.Current.Response), но какое событие / расширение / поведение выполняется последним, когда StatusCode уже установлен (например, если статус 500)?

РЕДАКТИРОВАТЬ: Инспекторы сообщений здесь не кажутся хорошим решением, потому что во время выполнения код состояния еще не установлен.(По крайней мере, в моем случае это было так)

Ответы [ 2 ]

0 голосов
/ 23 июня 2015

Вы можете получить доступ ко всем заголовкам на WebOperationContext.Current.IncomingRequest, например:

IncomingWebRequestContext request = WebOperationContext.Current.IncomingRequest;
WebHeaderCollection headers = request.Headers;

Console.WriteLine("-------------------------------------------------------");    
foreach (string headerName in headers.AllKeys)
{
  Console.WriteLine(headerName + ": " + headers[headerName]);
}
Console.WriteLine("-------------------------------------------------------");

См. здесь

0 голосов
/ 25 июля 2011
  1. Самый простой способ получить контроль над заголовками - это использовать контракты сообщений.

  2. Используйте Инспекторы сообщений для отслеживания сообщения сразу после его получения в конце службы.

  3. В крайнем случае, когда вы не удовлетворены какими-либо другими стандартными маршрутами, вы можете перейти к операциям типа POX (Простой старый XML), где вы будете иметь дело с необработанным сообщением XML.

...