У меня довольно интересная проблема.
Я создал скрипт для архивирования и загрузки (с резюме) некоторых файлов на учетную запись FTP.Локально на моем компьютере это работает нормально, но в производственной среде я получаю эту ошибку:
PS> $ftp.Put($fileStream,$file.name,$true);
Исключение вызывает "Put" с аргументом (ами) "3": "Не удалось найти файл" C: \ ByAndrew\ PowerShell \ Transactions \ System.IO.FileStream '. "
В строке: 1 символ: 9
- $ ftp.Put (<<<< $ fileStream, $ file.name, $ true); </li>
Вот скрипт:
$xml = New-Object XML
$xml.Load(".\settings.xml")
[void][Reflection.Assembly]::LoadFrom("D:\Work\Projects\ProjectIndyFTP\Bin\Indy.Sockets.dll")
$ftp = new-object Indy.Sockets.FTP
$ftp.Host = $xml.list.ftp.server
$ftp.Port = $xml.list.ftp.port
$ftp.Username = $xml.list.ftp.user
$ftp.Password = $xml.list.ftp.pass
$ftp.ConnectTimeout = 600
$ftp.Connect()
$file = Get-Item "D:\Work\Projects\ProjectIndyFTP\TestFolder\TestFiles\testfile5M.bin"
#$fileStream = $file.OpenRead()
$fileStream = New-Object System.IO.FileStream($file,[System.IO.FileMode]::Open,[System.IO.FileAccess]::Read,[System.IO.FileShare]::ReadWrite)
$ftp.Put($fileStream,$file.name,$true);
$fileStream.Close()
$ftp.Quit()
exit
<<<<<<<<<<<<<<<<<<<< Iне понимаю ошибку.Что с "Не удалось найти файл 'C: \ ByAndrew \ PowerShell \ Transactions \ System.IO.FileStream'."Я имею в виду «путь \ объект» Кто-нибудь сталкивался с таким поведением раньше?Любые советы? </p>
С уважением, Эндрю
Обновления:
Сегодня я проверил ссылочную версию сборки из производственной среды: mscoree.dll [2.0.50727.1433] - .net 20 sp1 Локально у меня был [2.0.50727.3053] - .net 20 sp2 Чтобы исключить это как проблему, я искал машину с .net 20 sp1.воспроизвел ошибку -> обновил .net до 2.0 sp2 и проверил.Та же проблема.Вот почему я сказал ... Я не думаю, что "зависимость" является ошибочной.
С уважением, Эндрю