2010-10-28 3 views
1

У нас есть служба Windows как часть нашего программного обеспечения, она используется для передачи данных в удаленную базу данных в фоновом режиме, даже если в систему не зарегистрирован пользователь. В настоящее время эти данные кэшируются в каталоге Program Files, и я не думаю, что это хорошая идея, потому что это требует от нас сокращения разрешений безопасности для наших каталогов в Program Files. Я думаю, что это кеширование этой папки% LocalAppData%, так что нам не нужно это делать.Где службы Windows должны записывать данные приложения?

Что считается лучшей практикой здесь?

В качестве дополнительного требования мы склонны запускать сервис как обычное приложение во время разработки, чтобы облегчить отладку, и было бы неплохо, если бы мы могли легко переключаться между режимами без потери кэшированных данных. Хотя мы можем жить без этого, если это необходимо.

Благодаря

ответ

1

Да, вы должны создать свои файлы под %LocalAppData% вместо общесистемного расположения. Вы можете передать CSIDL_LOCAL_APPDATA в SHGetFolderPath(), чтобы получить фактическое имя этой папки.

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

0

Я бы сказал, что лучшее место пользователя AppData папка для пользователя, что служба работает, как. Используете ли вы пользователя локальной службы по умолчанию или пользовательский пользователь? Я не уверен, в каком каталоге будет применена AppData пользователя Local Service, но я думаю, что это именно то, что вы хотите.

+0

Я считаю, что мы работаем как пользовательский пользователь. –

Смежные вопросы