Кто-нибудь видел эту проблему с Protobuf-Net по Net.msmq

StackOverflow https://stackoverflow.com/questions/3622702

Вопрос

Я вижу проблему, где я отправляю большие сообщения над WCF Net.msmq с помощью Protobuf-Net и получите следующую ошибку:

Форматирован сбросил исключение, пытаясь десертифицировать сообщение: ошибка в десериализующемся корпусе запроса сообщения для работы «davortdata». Конечный элемент «прото» из пространства имен 'http: // myjamespace' ожидал

Если размер сообщения до 16K, он работает

Если я удаляю Protobuf-Net, это работает

Если я переключаюсь на Basichttp, это работает

Но если размер сообщения превышает 16K, используя Protobuf-Net, через Net.msmq, я получаю ошибку. Я установил maxbufferpoolsize и maxreceedmessages, достаточно большой, это не помогает.

Кто-нибудь еще видел это? Кто-нибудь еще использовал ProTobuf-Net + Net.msmq для больших сообщений и получил его на работу?

Это было полезно?

Решение

Извиняюсь за задержку - отпуск и т. Д. Нет, я не видел определенную проблему с этим. Тот факт, что он вызывает «конечный элемент», предполагает, что он находится в XML-слое в то время (который до Protobuf-Net В самом деле принимает участие). У вас есть способ, которым я мог надежно воспроизвести это?


После расследования проблемы здесь, кажется, читатель WCF; Исключение, по-видимому, проглатывается MSMQ, поэтому не было сразу очевидно. Это может быть исправлено в конфигурации, или в коде (если вы устанавливаете привязки вручную), ссылаясь на System.runtime.Serialization и увеличение связывания .ReaderQuotas.MaxArrayLength соответствующим образом. Максимально допустимое значение 2147483647.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top