Другой общий случай, когда можно получить это исключение, включает в себя насмешливые классы во время модульного тестирования. Независимо от используемой насмешливой структуры, вы должны убедиться, что все соответствующие уровни иерархии классов должным образом высмеиваются. В частности, все свойства HttpContext
, на которые ссылается тестируемый код, должны быть изделены.
См. « Исключение NullReferenceException при проверке пользовательского AuthorizationAttribute » для несколько подробного примера.
Чтобы запрограммировать ftp из командного файла, см. http://support.microsoft.com/kb/96269 . Вам нужно вызвать ftp, как
open ftp.myftpsite.com
username
password
bin
cd out
mget *
del *
bye
ftp -i -s:ftpcommands.txt
, где ftpcommands.txt выглядит примерно так:
open ftp.myftpsite.com
username
password
bin
cd out
mget *
del *
bye
Для запуска этого каждые 15 минут см. Другие ответы (at
или Command Scheduler).
(Параметр -i
должен отключить интерактивное приглашение - другой способ сделать это - добавить команду prompt off
в текст команд файл перед mget
. Без этого mget
остановится и попросит вас подтвердить, прежде чем получать каждый файл. [Спасибо Адриано за это указание!])
Один код строки для crontab:
cd /local_target_directory; lftp -c "mget -E ftp://username:password@ftp.hostname.domain/path/*"
Использование только одного (1) .bat-скрипта. Создайте FTP-скрипт во временном файле, запустите его, а затем удалите временный файл.
SET "FTPFILE=%TEMP%\myftpscript_%RANDOM%.txt"
ECHO>>"%FTPFILE%" open ftp.myftpsite.com
ECHO>>"%FTPFILE%" username
ECHO>>"%FTPFILE%" password
ECHO>>"%FTPFILE%" bin
ECHO>>"%FTPFILE%" cd out
ECHO>>"%FTPFILE%" mget *
ECHO>>"%FTPFILE%" del *
ECHO>>"%FTPFILE%" bye
ftp -i -s:"%FTPFILE%"
IF EXIST "%FTPFILE%" (DEL "%FTPFILE%")
EXIT /B 0
Если у вас возникла проблема с вышеуказанным, вам нужно использовать сторонний FTP-клиент. Большинство из них поддерживают как пассивный режим, так и шифрование.
Например, с FTP-клиентом WinSCP вы можете использовать следующий командный файл (.bat
):
WinSCP.com /command ^
"open ftp://username:password@ftp.example.com/" ^
"get /out/* c:\local\path\" ^
"exit"
Если у вас уже есть скрипт ftp.exe
, есть руководство для , преобразующее его в скрипт WinSCP .
Для планирования part, см. руководство для планирования передач на FTP-сервер .
(я автор WinSCP)
У Windows есть утилита в , а также планировщик задач Windows . Любой из них может запускать вашу программу с заданным интервалом.