Регистрация размеров сообщений WCF - PullRequest
3 голосов
/ 23 мая 2009

Я использую WCF для отправки некоторых объектов Linq по проводам. Я хочу записать размер сообщения либо с помощью регистрации сообщений, либо с помощью трассировки. Однако я не хочу или не могу использовать файл конфигурации для настройки этого. Я изо всех сил пытаюсь выяснить, как сделать это программно. Мне все равно, если это произойдет на хосте клиента. Я контролирую оба.

У кого-нибудь есть опыт в этом?

Ответы [ 3 ]

3 голосов
/ 26 мая 2009

Марк прав, инспекторы сообщений позволят вам сделать это. Создайте класс, который: реализует IDispatchMessageInspector . Приведенный ниже метод будет доступен, где вы сможете реализовать код для манипулирования сообщением запроса.

Public Function AfterReceiveRequest(ByRef request As System.ServiceModel.Channels.Message, ByVal channel As System.ServiceModel.IClientChannel, ByVal instanceContext As System.ServiceModel.InstanceContext) As Object Implements System.ServiceModel.Dispatcher.IDispatchMessageInspector.AfterReceiveRequest
    'Output the request message to immediate window
    System.Diagnostics.Debug.WriteLine("*** SERVER - RECEIVED REQUEST ***")
    System.Diagnostics.Debug.WriteLine(request.ToString())

    Return Nothing
End Function

Кроме того, следующая ссылка также может оказать некоторую помощь.

Удачи

0 голосов
/ 25 мая 2009

Вы также можете использовать Fiddler, который может регистрировать ваши HTTP-сообщения, если вы используете одну из привязок wsHttp или basicHttp. http://www.fiddler2.com/fiddler2/

0 голосов
/ 23 мая 2009

Не программирование, но возможно: wireshark ?

В качестве альтернативы посмотрите инспекторы сообщений . У меня нет конкретного примера для регистрации размера.

...