Операция System.IO.Copy периодически вызывает ошибку «Отказано в доступе». Net 4.0 C# Консольное приложение - PullRequest
0 голосов
/ 15 января 2020

У меня есть консольное приложение, написанное на. Net framework 4.0 C#. В приложении я копирую файл из одного местоположения сервера в другое местоположение.

Вот код:

System.IO.File.Copy("sourceFile","destFile",true);

Я создал планировщик Windows, который выполняет консоль приложение каждый день в определенное время.

Код работает отлично, если я запускаю его вручную. Однако он периодически выдает ошибку «Отказано в доступе» (скажем, один раз в 10 раз) при запуске через планировщик.

Сообщение об ошибке: Доступ к пути "destFile" запрещен . Другая информация (если есть) Трассировка стека: в Syste.IO._Error.WinIOError (Int32 errorCode, String MaybeFullPath) в Syste.IO.File.InternalCopy (String sourceFileName, String destFileName, логическое перезапись, логическое checkHost) в System.IO. File.Copy (String sourceFileName, String destFileName, Boolean overwrite)

Я попытался воспроизвести ошибку на других серверах нижнего окружения (Dev / Test), но проблему не удалось воспроизвести. Уже удалили планировщик задач и создали несколько sh единиц много раз, но не повезло. Проблема исправляется после повторного запуска кода, так как он по своей природе является прерывистым. Разрешение на источник и место назначения уже предоставлено, из-за чего оно работает нормально 9/10 раз.

Просьба сообщить, если вы обнаружите какую-либо проблему или вам потребуется дополнительная информация для дальнейшего устранения неполадок.

Ответы [ 2 ]

1 голос
/ 15 января 2020

Заметил, что вы включили опцию перезаписи. Если один из файлов dest (перезаписанный) открывается другими приложениями, вы получите несколько сообщений об ошибках.

1 голос
/ 15 января 2020

Посмотрите на разрешения пользователя приложения, вероятно, пользователь, которого вы используете для запуска приложения, пропускает разрешения на запись по желаемому пути.

...