Я написал службу Windows в C # / VS2008 / .NET3.5, которая отслеживает некоторые FTP-каталоги с помощью FileSystemWatchers и перемещает файлы в другое место для обработки.Сегодня я заметил, что он выдает ошибки, в которых говорится, что «параметр неверен» вскоре после запуска службы, но если мы подождем несколько минут, файл будет скопирован без происшествий.Я видел, что сообщение об ошибке часто связано с неправильными разрешениями, но я проверил, что разрешения для каталогов (цели и источника) были правильными, и, как я уже сказал, перемещение файла работает через несколько минут.
Вот фрагменткода, который вызывается после завершения копирования файла в контролируемый каталог FTP:
//found the correct source path
string targetDir = dir.TargetDirectory;
string fileName = Path.GetFileName(e.FullPath);
errorlocation = "move file";
string targetFilePath = Path.Combine(targetDir, fileName);
if (File.Exists(targetFilePath))
{
File.Delete(targetFilePath);
}
File.Move(e.FullPath, Path.Combine(targetDir, fileName));
dir ссылается на объект с информацией о каталоге, в который был загружен файл.Это FileSystemEventArgs.Targetdir извлекается из настроек каталога в пользовательском блоке конфигурации в app.config, который сообщает службе, куда копировать новые файлы.
Я не включил здесь код, но я знаю, что он не работаетFile.Move (последняя строка выше) из-за некоторых записей EventLog, которые я сделал для отслеживания шагов.
Есть ли какие-либо идеи относительно того, почему перемещение завершается неудачно вскоре после запуска службы, но работает нормально позже?
Базовый обзор процесса на случай, если он проливает некоторый свет: внешние поставщики отправляют нам несколько FTP-сообщений.файлы каждый день.Когда файл поступает, мой код определяет, откуда он поступает, на основе каталога FTP, а затем загружает настройки для передачи заданиям SSIS, которые будут анализировать и сохранять файлы.Возможно, сейчас отслеживается около дюжины каталогов, каждый из которых имеет свой собственный параметр конфигурации для задания SSIS.Возможно ли, что система запутывается при запуске и просто нужно некоторое время, чтобы заполнить все настройки?Каждый исходный каталог имеет свой собственный FileSystemWatcher.
Спасибо за вашу помощь.