Максимальный размер запроса SOAP, превышающий ограничение сервера - PullRequest
1 голос
/ 16 марта 2011

У меня есть набор веб-служб SOAP, размещенных на IIS7 (MSSOAP 3.0), которые используются веб-приложением .Net, а также приложением J2ME (в настоящее время запущенным через эмулятор). Веб-приложение может успешно вызывать все определенные методы. Приложение J2ME успешно вызывает все методы, кроме тех, которые POST-данные больше 2K. Неудачные методы возвращают следующую ошибку:

The size of the request exceeds the limit allowed by the server

Объем данных, передаваемых по этому вызову, невелик. Это меньше, чем отправлено веб-приложением, и также значительно ниже предела, определенного в настройках реестра (в настоящее время 102400):

HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / MSSOAP / 30 / SOAPISAP / MaxPostSize

Кто-нибудь имеет представление, почему приложение J2ME не будет работать с этой ошибкой.

UPDATE

При отправке данных из приложения J2ME класс соединения Http вставляет «Transfer-Encoding: chunked» в заголовок запроса, когда размер сообщения превышает ~ 2K. Это заменит любую «Content-Length», которая также может быть добавлена ​​в заголовок. Класс HttpConnection не позволяет переопределять это поведение.

Если я имитирую вызов метода, используя telnet с теми же данными из приложения J2ME, то вызов проходит успешно.

После анализа пакетов, отправленных из приложения J2ME, и моделирования telnet я заметил, что подход telnet не включает заголовок чанкинга. Пакеты из приложения J2ME были неполными. Только заголовки и последний пакет были отправлены, возможно, из-за того, как IIS обрабатывает запрос. В IIS7 включена блокировка.

Я нашел похожие сообщения об этой проблеме еще где-то в Интернете, но решения не найдено. Следующая ссылка описывает проблему, похожую на мою.

Тема: j2me http post проблема в IIS 6.0

...