Как увеличить размер POST для веб-службы ASMX?

Предпосылки

Я разрабатываю элемент управления на стороне сервера ASP.Net, который должен взаимодействовать с веб-службой ASMX. Элемент управления на стороне сервера использует объект WebClient для взаимодействия с веб-службой, поскольку его необходимо часто повторно использовать в различных приложениях, и для упрощения работы разработчиков им не требуется создавать ссылку на службу. в веб-службу.

Реализация

Во время использования элемента управления требуется отправка сериализованного объекта веб-службе. Объект сериализуется с помощью XmlSerializer , а затем результирующая строка XML сжимается с использованием библиотеки сжатия chilkat. Вызов веб-службы для элемента управления выглядит следующим образом:

webClient.UploadStringAsync (новый Uri (serviceHost + serviceMethod), «POST», sendData)

Содержимое sendData ( строка ) равно compressedResponse = {CompressedData} .

У веб-службы есть метод, определенный следующим образом, для получения данных и последующего распаковки строкового значения с помощью библиотеки chilkat перед десериализацией объекта с помощью XmlSerializer .

public void SaveResponse (string compressedResponse)

Связь между элементом управления и службой работает. Первоначально не было никаких настроек или привязок, определенных в web.config для любого из вышеперечисленных. После первоначального поиска я добавил

для файлов клиента и сервера web.config . Это не имело никакого значения.

Проблема

Сжатые или несжатые данные, отправляемые в веб-службу в переменной sendData , слишком велики для обычного запроса POST и повреждены. Это подтверждается при проверке последних нескольких символов строки до и после того, как она была отправлена ​​на сервер в сжатом формате и в несжатом виде, в документе Xml отсутствует последний корневой тег при проверке в отладчике. Строка не может быть распакована, поэтому вызов службы каждый раз терпит неудачу.

Как мне увеличить размер POST для запроса WebClient , чтобы гарантировать получение сервером полной строки?

Я просмотрел различные варианты в Google, но ни один из них не дает мне достаточно точного примера того, где нужно внести изменения, или примеров того, как изменения должны выглядеть. Я совершенно не понимаю, нужно ли вносить изменения на сервере или на веб-сайте-потребителе, и, поскольку для этого нет привязки, как создать привязку в web.config для ASMX Вызов службы HTTP.

7
задан BinaryMisfit 22 January 2011 в 05:42
поделиться