Получить длину запроса, чтобы исправить «превышение максимальной длины запроса»

#.net #xml #vb.net

#.net #xml #vb.net

Вопрос:

Я имею дело с проблемой в моем приложении .NET. Я вызываю веб-службу для взаимодействия с моей базой данных. Но у меня проблема.

Я отправляю содержимое XML через список в моей веб-службе. Но как только я его вызываю, он немедленно останавливается из-за ошибки. Я попытался уменьшить длину списка. Это сработало для моих 2 первых списков, но не для последнего.

В начале у меня был список из 43 тыс. объектов класса. Я понял, что это слишком много для моего веб-сервиса.

 ' ListOfElements is a List(Of List(Of T))
Dim addedObject as New List(Of T)
For Each element As List(Of T) In ListOfElements
    ' ListOfElements contains 5 List(Of T)
    ' element contains 7.5k T object
    WS.InsertInDb(element, addedObject)
Next
 

Поэтому вместо этого я сократил этот список до подсписка из 10 тыс. объектов класса. Это работало, но больше не после третьего вызова. Я попытался уменьшить его до 7,5 тыс., работать до четвертого вызова.

Знаете ли вы, как я могу получить длину своего запроса, чтобы лучше понимать, что отправляется на мой веб-сервис.

Потому что однажды он работал, на следующий день, больше нет.

Комментарии:

1. Каков максимальный предел длины запроса веб-службы? У вас есть контроль над обоими. СЕТЕВОЕ приложение и веб-сервис?

2. Максимальная длина запроса равна длине по умолчанию. У меня есть доступ к обоим, но я не могу редактировать web.config веб-службы. Вот почему я должен работать только над . СЕТЕВОЕ приложение

3. Неясно, что такое веб-сервис? Предполагая, что WCF тогда это должно быть 4096 КБ? Это также может быть ограничено IIS . Вы пробовали ограничить длину запроса 4096 КБ?

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

5. если это ASMX с SOAP и с использованием устаревшей службы добавления в VS, было бы проще перехватить исключение, а затем закрыть соединение и снова открыть его, промыть и повторять, пока все не будет отправлено.

Ответ №1:

я нашел, где превышен размер.

Для второго объекта, отправленного в WS (addedObject), я создавал список T, вставленный для моего почтового отчета. По мере того, как этот список рос, я увеличивал запрос, несмотря на меня.

Спасибо за подсказку