WebClient.UploadFile () создает исключение для некоторых двоичных файлов - PullRequest
1 голос
/ 11 сентября 2009

Я использую метод WebClient.UploadFile () для публикации файлов в сервисе для обработки. Файл содержит XML-документ со сжатым, кодированным в b64 элементом содержимого. Для некоторых файлов (в настоящее время 1) UploadFile выдает исключение, указывающее, что основное соединение было закрыто. Самое внутреннее исключение на уровне сокета выдает сообщение «Существующее соединение было принудительно закрыто удаленным хостом».

Вопросы:

  1. Кто-нибудь сталкивался с такой же проблемой?
  2. Почему выдается исключение для некоторых файлов, а не для всех?
  3. Должен ли я установить какой-то дополнительный параметр для файлов с двоичным содержимым?
  4. Есть ли обходной путь?

Эта функция отлично работает в ситуации VPN, но, очевидно, мы хотим использовать ее для работы в стандартных ситуациях Интернета.

Спасибо, Райн

Ответы [ 2 ]

0 голосов
/ 29 декабря 2009

Есть ли вероятность, что это проблема размера, а размер проблемного файла превышает определенный размер, а все рабочие файлы находятся ниже него? Сервер, закрывающий соединение, когда он достигает максимально допустимого размера запроса, соответствует вашему симптому. Вы упомянули, что это работает в VPN, так что, по общему признанию, это растянуто, но, возможно, случай VPN был другим сервером, который настроен по-другому (или максимальный запрос отличается по другой причине).

Существуют ли не-WebClient методы для загрузки файла в один и тот же сервис с одного компьютера и, если да, они работают?

0 голосов
/ 22 сентября 2009

Похоже, что межсетевой экран или другое программное обеспечение безопасности, установленное между вами и сервером, может отклонить запрос как потенциальную атаку. Я сталкивался с этим раньше, когда брандмауэры отклоняли запросы с определенным расширением файла - даже если это расширение файла было закодировано в параметре строки запроса!

На вашем месте я бы взял проблемный файл и начал бы обрезать из него XML. Возможно, вам удастся найти определенный фрагмент XML, который вызывает проблему. После того, как вы определили виновника, вы можете выяснить, как обойти эту проблему (например, кодируя эти символы, используя их значения Unicode вместо текста, перед отправкой файлов). Однако, если какое-либо изменение в файле приводит к исчезновению проблемы (это не вызвано определенным фрагментом беспокоящего текста), то я в тупике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...