Передача файлов через веб-сервис ASP.NET-это супер-пленка

StackOverflow https://stackoverflow.com/questions/4592652

Вопрос

У нас есть Legacy WSE3 ASP.NET Webservice, который определяет метод GetFileContent(string fileName). Анкет То, что он делает, проверяет предопределенный путь для файла с передаваемым именем, прочитайте его содержимое, Base64-поделите его и отправьте этот кодированный материал обратно в качестве ответа.

К сожалению, весь процесс занимает (разные) возрасты. Я написал приложение Console Client, которое сравнивает производительность по требованию: иногда 2,5 метра передаются в течение 12 секунд, иногда это занимает 40. Еще один 27-метровый файл проходил через 16 секунд, сегодня потребовалось> 1 мин.

Дальнейшие вещи, которые я проверил:

  • Производительность процессора и обмена не стоит упоминать (при мониторинге машина выглядит скучной)

  • Скорость сети достаточна.

  • Вызов метода выполняется сразу после того, как клиент отправил запрос.

  • Чтение и кодирование занимает в среднем 500 мс для большого файла, так что оператор возврата также выполняется сразу после запроса.

  • Другой клиент (на основе Java) еще медленнее, так что я думаю мог быть проблемой клиента.

У кого -нибудь есть идея, где смотреть рядом, чтобы отстать от этого противника? Чувствует, что IIS Проблема, действительно ...

Заранее большое спасибо...

Это было полезно?

Решение

Во -первых, просто чтобы убедиться: я надеюсь, что вы знаете, что WSE устарел.

Во -вторых, WSE основан на технологии ASMX. У этого есть проблемы с большими запросами, так как он будет дублировать входящие данные четыре или более раз на пути к службе. Как бы ваши данные были большими, предположим, что это займет не менее четырех раз больше памяти, прежде чем служба даже получит в свои руки.

Обходной путь - это обновление до WCF.

Другие советы

Я считаю, что в IIS нет проблем. Я подозреваю, что иногда потребовалось больше времени для разрешения IP, если вместо этого дается общий путь пути.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top