Отправка больших блоков данных Web-service

Тема в разделе ".NET", создана пользователем *null, 25 июн 2007.

Статус темы:
Закрыта.
  1. *null

    *null Гость

    Приложение отправляет Web-сервису данные, сервис сохраняет их в базе данных.
    Сервис работает на IIS5 по https. Отправку данных осуществляет Windows-Application, например так:

    Код (Text):
    WebService.GetData(byte[] pbDataToSave, …);
    Такой способ нормально работает только при малых размерах pbDataToSave. При размере буфера уже около 80 КБ вызов GetData проваливается с ошибками
    The underlying connection was closed: An unexpected error occurred on a send.
    либо
    The underlying connection was closed: An unexpected error occurred on a receive.
    Примерно 50/50 та или другая.

    Не могу понять в чем дело. Облазил всю сеть. Советуют перегружать метод GetWebRequest в прокси-классе Web-Service на клиенте:
    protected override WebRequest GetWebRequest(Uri uri)
    Код (Text):
    {
    HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);

    webRequest.KeepAlive = false;
    webRequest.ProtocolVersion=HttpVersion.Version10;
    return webRequest;
    }
    Мне это способ не помог. Кроме того при этом на том же месте стала вылетать ошибка
    The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.

    Подозреваю, что причина может быть в лимите на размер http-запроса IIS’а. Но как изменить это значение мне не известно, да и не факт что в этом дело.

    Пожалуйста, кто сталкивался, помогите!
     
  2. mr_ST

    mr_ST Гость

    Если мне не изменяет мой склероз это защита от атак, то бишь размер request-aограничен. Кроме как передавать данные пакетами иного способа предложить не могу.
     
  3. Pasha

    Pasha Гость

  4. *null

    *null Гость

    Как вообще можно передать Web-сервису большой (несколько мегабайт) кусок бинарных данных?
    Если возможно, подкиньте пример.

    Сложность еще в том, что мне доступен только Visual Web Developer 2005 EE. Примеры из "Sending and Receiving Large Amounts of Data" ориентированы на VS 2005. Вручную поковырял Web.config не помогло.

    К WSE давно присматриваюсь, но тема весьма громоздкая, не уверен что мне это вообще понадобится.
     
  5. Pasha

    Pasha Гость

    Для: *null
    Sending and Receiving Large Amounts of Data - это статья по WSE.
     
  6. karlito

    karlito Гость

    Для: *null
    поищи в гугле по слову MTOM. Он и в WSE 3.0 поддерживается и в WCF.

    Хотя если на сервере размер запроса ограничен и изменить его не имеется возможным, то здесь выкручиваться самому придётся.
    По умолчанию, на сколько помню, 4 метра.
     
Загрузка...
Похожие Темы - Отправка больших блоков
  1. k85
    Ответов:
    4
    Просмотров:
    89
  2. k85
    Ответов:
    10
    Просмотров:
    882
  3. motogarri
    Ответов:
    4
    Просмотров:
    794
  4. JohnLemon
    Ответов:
    18
    Просмотров:
    1.558
  5. erdi
    Ответов:
    3
    Просмотров:
    1.380
Статус темы:
Закрыта.

Поделиться этой страницей