У меня есть программа на C#, которая использует базу данных SQLite для чтения/записи данных. Эта программа требует повышения UAC, и я требую, чтобы она работала в любое время. Когда я запускаю эту программу вручную, которую я должен «запускать как admin», моя база данных SQLite функционирует нормально, способная читать/записывать данные в файл базы данных. Однако моя проблема заключается в том, что я пытаюсь запустить эту программу автоматически при запуске компьютера.SQLite reader.read() всегда возвращает false при выполнении из планировщика заданий
Как я упоминал ранее, мне требуется, чтобы эта программа выполнялась в любое время. Итак, я поставил пару вещей на место, которые повторно запускают программу в случае ее сбоя (что отлично работает). Однако мне также нужно это, чтобы начать выполнение, когда компьютер перезагрузится. Обычно это не проблема, но для этой программы требуется UAC, и я редко буду рядом, чтобы щелкнуть Да в диалоговом окне UAC, поэтому я читаю, и, похоже, единственный способ сделать это - настроить задачу в планировщике задач. Итак, я поставил задачу запустить это при запуске. После тестирования программа выполняет, но не работает правильно. При дальнейшей отладке я обнаружил, что каждый раз, когда мой код достигает строки SQLiteDataReader.read(), он всегда возвращает false, даже если я знаю, что там есть записи, но это происходит только тогда, когда программа выполняется через Task Scheduler. Похоже, что из SQLite ошибок не возникает. Я подозреваю, что права на файлы являются проблемой, но не знают, как их решить.
Несколько вещей, чтобы отметить то, что я уже пробовал. 1) В Планировщике заданий я установил это для выполнения с использованием той же самой учетной записи пользователя, которую я использовал для ее запуска вручную, а также администратора домена, администратора и локальной учетной записи администратора. 2) Задана задача «запустить с наивысшими привилегиями» 3) Я изменил разрешения безопасности на полный доступ практически для каждого объекта, который я могу думать (админы, администраторы домена, пользователи, все и т. Д.) На как корневую папку программы, так и файл базы данных SQLite. 4) Я даже попытался переместить все приложение за пределы папки Program Files, если там был какой-то ограниченный доступ.
Я нахожусь в своем уме, пытаясь понять это. Любые идеи о том, что попробовать дальше? Или другие решения, чтобы заставить это правильно выполнить при запуске без взаимодействия с пользователем?
Неужели вы пробовали обычную папку автозагрузки? – Bytemain