Передача файлов размером более 100 МБ в виде массива byte [] в веб-службу asmx - PullRequest
0 голосов
/ 09 февраля 2011

Я использую веб-приложение 3.5 asp.net для передачи файлов в виде байтового массива в веб-службу axmx 1.1, но при вызове метода выдается следующая ошибка

"Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка"

длина байт-массива равна 120788413, однако, когда я вызываю тот же метод с меньшим файлом, то есть с длиной байтового массива 3128994, он прекрасно работает.

Есть ли способ в веб-сервисе 1.1 asmx увеличить длину запроса на получение сообщения?

веб-сервис 1.1 не может быть обновлен, поэтому WCF не может использовать тот же сервис, в веб-сервисе я добавил это

<httpRuntime executionTimeout="30720" maxRequestLength="1024000"/>

в элементе system.web

также добавили этот раздел

<microsoft.web.services2>
        <diagnostics>
      <trace enabled="true" input="InputTrace.webinfo" output="OutputTrace.webinfo"/>
    </diagnostics>
    <messaging>    <maxRequestLength>1024000</maxRequestLength>   </messaging><!-- 1GB -->
    </microsoft.web.services2>

но это, похоже, не работает, в моем приложении я также использую httpruntime с теми же значениями

Пожалуйста, руководство, как я могу увеличить длину получения сообщения в веб-сервисе?

1 Ответ

0 голосов
/ 09 февраля 2011

Нет хорошего способа сделать это.Служба ASMX скопирует все сообщение в памяти несколько раз в процессе обработки запроса.Ваши 100 МБ памяти составляют как минимум 300 МБ.

...