WCF: доступ к HTTP headers в кастомном MessageEncoder.
От: belf Meta
Дата: 04.01.10 16:23
Оценка:
Всем привет.

Вставляю поддержку gzip compression для WCF сервесов. Исходник (http://msdn.microsoft.com/en-us/library/ms751458.aspx). Все получается замечательно, но есть одна деталь, которую хотелось бы сделать гибко — комрессировать/декомрессировать реквест/респонс не безусловно, а в зависимости от Content-Encoding хедера.
Для _исходящих_ сообщений это не проблема — с помощью behaviors можно вставить и дополнительный хеадер и передать информацию в messageencoder о том, что нужно комрессировать исходящий месаж. Проблема с входящими сообщениями — как получить значение Content-Encoding хеадера _входящего_ сообщения? По-видимому, сам WCF уже "знает" все хеадеры, по крайней мере Content-Length и Content-Type, последний он даже передает в MessageEncoder.ReadMessage метод.

Есть ли у кого какие идеи?

Best regards,
Aleksey Chernoraenko.
Re: WCF: доступ к HTTP headers в кастомном MessageEncoder.
От: Tom Россия http://www.RSDN.ru
Дата: 09.01.10 00:04
Оценка:
B>Есть ли у кого какие идеи?
OperationContextю.Current.IncomingMessageHeaders?
Народная мудрось
всем все никому ничего(с).
Re[2]: WCF: доступ к HTTP headers в кастомном MessageEncoder
От: belf Meta
Дата: 11.01.10 18:51
Оценка:
Здравствуйте, Tom, Вы писали:

B>>Есть ли у кого какие идеи?

Tom>OperationContextю.Current.IncomingMessageHeaders?

Этот вариан не подойдет. OperationContext.Current не проинициализирован еще на момент конструирования Message.
Возможный (и наверно единственный) способ это сделать это перегрузить Message. То есть реализовать некий проси для мессажа, который будет откладывать построение реального, низлежащего мессажа до тех пор пока кто-то не запросит body. К тому моменту headers уже будут доступны. Я описал это более подробнее на stackoverflow (http://stackoverflow.com/questions/1993062/access-to-request-http-headers-in-custom-wcf-messageencoder).

Best regards,
Aleksey Chernoraenko
Re[3]: WCF: доступ к HTTP headers в кастомном MessageEncoder
От: Tom Россия http://www.RSDN.ru
Дата: 12.01.10 10:20
Оценка:
А эта ссылка случайно не оно? http://frenk.wordpress.com/2009/12/04/gzip-compression-wcfsilverlight/
Народная мудрось
всем все никому ничего(с).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.