Определить количество места, которое занимает сериализованный объект, передаваемый в привязке WCF netTCP? - PullRequest
0 голосов
/ 23 сентября 2009

Есть ли способ узнать, сколько места занимает сериализованный объект, передаваемый в привязке WCF netTCP? Я получаю

Соединение с сокетом было прервано. Это может быть вызвано ошибкой обработка вашего сообщения или получения тайм-аут превышен пультом хост или базовая сеть вопрос ресурса. Тайм-аут локального сокета было '00: 00: 59.9570000 '

ошибка, и я думаю, что это может быть связано с размером данных, которые я передаю обратно. Есть ли способ в отладчике Windows, чтобы определить, сколько места (байтов) займет передача данных обратно?

1 Ответ

1 голос
/ 23 сентября 2009

Ну, самый простой (и самый точный) вариант, вероятно, состоит в том, чтобы установить его в максимуме в конфигурации (чтобы он не взрывался) и использовать WireShark для измерения во время передачи; теоретически вы могли бы использовать журналирование / трассировку сообщений WCF, но у меня были результаты попадания и отсутствия при использовании этого с большими сообщениями.

В качестве альтернативы, вы можете попробовать использовать NetDataContractSerializer для записи данных в MemoryStream и посмотреть на .Length потока?

Обратите внимание, что если вы используете классы (вместо DataTable), вы можете найти другой сериализатор подсказок; это не на 100% научно, но я недавно сравнил NetDataContractSerialzier и protobuf-net .

...