У меня есть консольное приложение, которое находится на моем рабочем столе. Я установил его в запланированную задачу для запуска каждые 20 минут на неопределенный срок. Я отключил автоматический спящий режим/спящий режим. Затем я оставил свой компьютер и заблокировал свой рабочий стол на выходные (2-3 дня).Почему приложение Console работает от System32?
Мое консольное приложение было разработано, чтобы отправлять мне по электронной почте каждый раз, когда он ловит исключение. Когда я вернусь, проверил, что мой почтовый ящик получил пару сообщений об ошибках, содержащих
Доступ к пути «C: \ WINDOWS \ system32 \ myLogs \» запрещен.
, казалось моя консоль приложение было запускается с System32
не из моего Desktop
.
Вопрос: Почему это так?
это моя строка на создание моего myLog
пути к папке
var logpath = Directory.GetCurrentDirectory() + Properties.Settings.Default.LogPath;
это проверяет, если папка существует, если не создает новую папку.
if (!Directory.Exists(logpath))
Directory.CreateDirectory(logpath);
Я считаю, что ошибка была инициирована при проверке/создании папки. Мое приложение должно создать папку myLog
в том же каталоге, что и мое консольное приложение.
Вопрос: Почему он исходит от System32
Папка?
Значит, лучше найти каталог моего консольного приложения, чем настроить с помощью планировщика заданий? – Hexxed
Зависит исключительно от того, что вы хотите. Если приложение должно создать каталог журнала _ в каталоге, в котором EXE был запущен_ (1), тогда не делайте никаких изменений кода и не настраивайте параметры планировщика заданий. Если приложение должно создать каталог журнала _ в том же каталоге, что и EXE_ (1), используйте «System.Reflection.Assembly.GetExecutingAssembly(). Вы можете использовать код для обоих, например, сначала попробуйте каталог (1), если это не удается, затем попробуйте каталог (2). – Serge
Спасибо, я буду использовать сценарий (2). – Hexxed