В какой конфигурации мне нужно получить проект Windows Service для чтения и записи из базы данных SQLite? - PullRequest
0 голосов
/ 17 февраля 2020

У меня ранее был рабочий проект консольного приложения, которое будет считывать и записывать настройки в файл локальной базы данных SQLite.

На основе этого проекта я преобразовал его в сервисный проект windows, перенеся его через классы. и использовать класс ServiceBase для создания службы. Однако каждый раз, когда я запускаю службу, я получаю SqliteException с сообщением SQLite Error 1: 'no such table: Settings'.

Используя DB Browser for SQLite, я вижу таблицу, присутствующую в файле базы данных, поэтому я не уверен, что продолжается.

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

Я не уверен, поможет ли это но я также включил часть файла DbContext:

public class CDIContext : DbContext
{
    public DbSet<Setting> Settings { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder options)
    {
        options.UseSqlite("Data Source=ApplicationData.db");
    }
}

public class Setting
{
    [Key]
    public Int32 Id { get; set; }
    [Required]
    public Int64 LastUpdateEpochUTC { get; set; }
}

1 Ответ

0 голосов
/ 17 февраля 2020

Обнаружено, что рабочий каталог Windows Service находится в: C:\Windows\System32 или C:\Windows\SysWOW64, а не в каталоге моего приложения

В каком каталоге работает служба Windows?

Таким образом, файлы моей базы данных искались в этих каталогах, а не в каталоге приложения.

Примет совет @ErikEJ и изменится на полный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...