Мы разрабатываем приложение, которое загружает большие файлы через Интернет.Размер файла до архивирования DotNetZip составляет около 18 ГБ, и около 4 ГБ после ZIP.Файл без проблем передается с клиентского компьютера на конечный сервер по защищенному протоколу ftp.
Затем клиент вызывает веб-службы .Net, размещенные на конечном сервере, для копирования файла из корневого каталога ftp в каталог хранилища, вычисления хэша файла ивызов DotNetZip для распаковки файла.
Веб-службы работают хорошо, когда клиентский компьютер и сервер конечного сервера, на котором размещены веб-службы, находятся в интрасети.
Однако при использовании одного и того же клиентского компьютера, но другогоНа сервере конечного рабочего сервера, на котором размещены веб-службы в Интернете, при копировании, хэшировании и распаковке файла объемом 4 ГБ веб-службы имеют «исключение прерывания потока».
Обе серверные машины являются сервером Windows 2003 с пакетом обновления 2 (SP2) и имеют одинаковыекомпоненты установлены, имеют тот же IIS ver6.0 и настроены на использование ASP .Net 2.0.Мы скопировали web.config, machine.config, MetaBase.xml с компьютера сервера интрасети на компьютер сервера Интернета.
Мы изменили: 1. Код на стороне клиента: тайм-аут прокси-сервера веб-службы в коде 7200000 2. Файл web.config компьютера-сервера: (1).(2).3. Файл machine.config компьютера: (1).4. Серверный компьютер MetaBase.xml: (1).AspMaxRequestEntityAllowed = "1073741824" 5. На IIS ver6, веб-сайт -> вкладка службы -> Режим изоляции, проверяется «Запуск службы WWW в режиме изоляции IIS 5.0».
Наше текущее понимание проблемы на серверев Интернете рабочий процесс перезапуска .Net со значением тайм-аута по умолчанию вызывает исключение «Поток был прерван», даже если поток продолжает копировать файл.
Если наше понимание верно, то почему такая же конфигурация тайм-аута работает на сервере в Интранете?Как нам настроить работу тайм-аута на компьютере нашего производственного сервера в Интернете?