Я использую FileSystemWatcher в VS2005 для мониторинга каталогов и подумал о преобразовании приложения в службу. Eveverything работает нормально, пока служба не попытается удалить файл. Отправляя исключение в средство просмотра событий, я получаю System.UnauthorizedAccessException. Рассматриваемый файл (тестируемый) может быть удален тем же кодом FileSystemWatcher при запуске в форме. Я проверил права LocalService на папку и даже изменил, кто запускал службу. Я закомментировал код FileSystemWatcher и все еще не могу удалить файлы с помощью службы Я пытаюсь использовать File.Delete (имя файла). Думая, что проблема может быть связана с "File", я попытался использовать File.Copy (имя файла, новое имя файла), и он отлично работает





Попробуйте использовать для службы обычную старую учетную запись пользователя вместо LocalSystem. Таким образом вы можете предоставить определенные разрешения для службы и запретить ей доступ ко всем функциям LocalSystem.
Кроме того, я обнаружил, что FileSystemWatcher - больше проблем, чем пользы. Часто он обнаруживает наличие файла до того, как он полностью записан, и это вызывает всевозможные проблемы при работе с файлом. Попробуйте использовать опрос (проверяйте папку каждые несколько секунд - не используйте класс Timer - у него есть собственные проблемы!) На предмет новых файлов.
"изменил, кто запускал службу" Это тот, кто запустил службу, или учетную запись, для работы под которой была настроена служба?
Как правило, когда у службы возникают проблемы с правами, которые не возникают при запуске в качестве стандартного приложения, проблема неизменно связана с настроенной учетной записью службы.