1

私が持っているサービスを書く過程で

        //# 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 Interest'

local_PCのユーザーのHOMEPATHが必要ですが、それらを取得する方法はありますか?

アップデート

実際には、セッションとサービスが開始されるときに、現在ログオンしているユーザーのパスを取得する方が適切です。私のサービスは再入可能ではありませんが、1人のユーザーが誰よりも優れています。

4

1 に答える 1

1

私があなたの質問を正しく理解していれば、あなたが探しているのは特別なフォルダーの列挙です。

次のようなもので:

String PersonalFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);

サービスを localsystem アカウントとして実行する場合は、データを格納するための別の標準セットがあります。serverfault でこの回答を参照してください。

于 2011-09-08T09:11:06.480 に答える