サービスからユーザーのホームパスを見つける
-
27-10-2019 - |
質問
私が持っているサービスを書く過程で
//# Service Account Information
serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
インストーラーで。
ログを書くのに問題がありました
static string USERS_HOME_DIR = Environment.GetEnvironmentVariable("HOMEDRIVE") + Environment.GetEnvironmentVariable("HOMEPATH");
サービスが実行されていたとき(「管理者として」インストール)イベントロガーが報告していた
サービスを開始できません。 System.io.DirectoryNotFoundException:パスの一部を見つけることができませんでした 'c: documents folder of tenting "
local_pcのユーザーのホームパスが必要です。それらを取得する方法はありますか?
アップデート
実際、セッションとサービスが始まると、現在ログに記録されているユーザーのパスを取得する方が良いでしょう。私のSeviceは再入力ではありませんが、1人のユーザーは誰よりも優れています。
解決
私があなたの質問を正しく理解しているなら、あなたが探しているものは 特別なフォルダーの列挙.
のようなもの:
String PersonalFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
LocalSystemアカウントとしてサービスを実行する場合は、データを保存するための個別の標準セットがあります。見る ServerFaultでのこの答え.
所属していません StackOverflow