Я предполагаю использовать папку ProgramData в Windows для сохранения файлов конфигурации и файлов журнала моей прикладной программы.
Что касается файлов конфигурации, они просто создаются во время установки и не редактируются после установки. (Установка выполняется Администратором) Поэтому это не проблема.
С другой стороны, файлы журнала записываются во время выполнения программы. Но привилегии папки ProgramData по умолчанию не позволяют писать для группы пользователей.
Следовательно, я думаю, что мне следует изменить привилегии по умолчанию. Но я не уверен, что это правильно или нет.
Как правило, вы добавляете права на запись в папку журнала приложения в ProgramData?
Спасибо.
«ProgramData» предоставляет полный контроль создателю подпапок и файлов, и все пользователи имеют право создавать папки и файлы в «ProgramData». Если ваше приложение создает здесь подкаталог, создавающий пользователь имеет полный контроль над ним, а другие пользователи могут создавать там файлы и подкаталоги, над которыми они, в свою очередь, имеют полный контроль. Но пользователи не смогут изменять файлы других пользователей. Однако, поскольку исходный пользователь-создатель имеет полный контроль над каталогом, вы, конечно, можете предоставить всем пользователям право изменять файлы в каталоге.
Обычно это не делается. Обычно статические файлы конфигурации устанавливаются в каталог программы, а не в «ProgramData», а журналы для каждого пользователя хранятся в «AppData» (локально или, возможно, в роуминге). Если есть компонент ведения журнала или данных, который должен быть доступен всем пользователям, он может находиться в подкаталоге «ProgramData» с настраиваемой безопасностью. Но на самом деле это могло бы лучше управляться компонентом службы, который используется всеми пользователями.
Так куда же тогда приложение-служба должно записывать свои файлы журнала? (У меня есть приложение .NET Core, и для совместимости с Linux я не хочу использовать журнал событий Windows, а простой путь к файлу, который можно настроить в статическом файле конфигурации)
Я решил, что мое приложение sservice помещает журналы в папку ProgramData. Я не уверен, что это обычное поведение, но некоторые файлы журналов приложения, установленного на моем компьютере, были там.
ProgramData не подходит для этой цели, у вас нет доступа на запись. Вместо этого используйте AppData. Хранить файлы конфигурации можно, если у этих файлов нет пользовательской конфигурации.