2013-12-18 1 views
4
[string] $fileName = "en_sql_server_2008_r2_developer_x86_x64_ia64_dvd_522665.iso" 
[string] $url = "http://installers.abc/iso/$filename" 
[string] $tempPath = "c:\balpreet" 

function Download-Iso { 
    Param(
    [string] $FileName, 
    [string] $Url, 
    [string] $destinationFolder 
) 

    [string] $destination = Join-Path -Path $tempPath -ChildPath $fileName 
    write-host "downloading from : $url to $destination" 
    $client = new-object System.Net.WebClient 
    $client.DownloadFile($Url, $destination) 

} 

Download-Iso -FileName $fileName -Url $url -DestinationFolder = $tempPath 

Я пытаюсь загрузить 4.07 GB (4,380,329,984 bytes) ISO из удаленного места, доступного через http.System.Net.Webclient only загрузить 81.4 MB (85,363,075 bytes)

Windows 7: Загрузить полный файл объемом 4,07 ГБ.

Windows Server 2008 R2: Это скачать только 81.4 MB (85,363,075 байт) и симулировать закончили загрузку. Код не вызывает никакой ошибки, но не загружает полный файл.

Любая подсказка почему?

+0

Возможно ли, что на диске C на системе Windows Server 2008 R2 заканчивается дисковое пространство? – alroc

+1

Это происходит и с другими файлами? У меня также были проблемы с некоторыми корпоративными брандмауэрами. В моей работе «умный» брандмауэр иногда думает, что определенные файлы являются вирусами, и убивает соединение ... и он всегда, кажется, убивает его в том же месте. Мой единственный способ - загрузить файл из дома и ввести его на USB-ключ. – HAL9256

ответ

1

Это был внутренний сетевой прокси-сервер, который по какой-то причине отказался от запроса после передачи 81,4 МБ (85,363,075 байт). Но странная вещь webclient не бросает никаких исключений и притворяется, что загрузка прошла успешно.

Исправление - это пропустить прокси-сервер, чтобы запрос обрабатывался без прокси-сервера.

$client.proxy=$null # get rid of proxy 
$client.DownloadFile($Url, $destination)