4

マシンで Windows サービスを実行しています。私がするとき

 Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments)

空の文字列が表示されますが、コンソール アプリケーションで同じことを行うと、MyDocuments フォルダーの正しい場所が表示されます。

なぜそれが起こっているのかについてのアイデアはありますか?

4

1 に答える 1

10

これは、アプリケーションをコンソールとして実行すると、ユーザーとしてコンピューターにサインインして実行しているため、「マイ ドキュメント」にアクセスできるためです。Windows サービスが (デフォルトで) 実行されている場合、「マイ ドキュメント」フォルダを持たないローカル システムとして実行されます。これは、コンピューターの起動時に Windows サービスが実行され、ユーザーがサインインする必要がないためです。

問題は、「マイ ドキュメント」フォルダで何をしようとしているのかということです。Windows サービスは、おそらくユーザーに依存しない場所にアクセスしたいと考えていますか?

最後に、コンピュータに 10 人のユーザーがセットアップされていると想像してください。まだ誰もサインインしていない場合、Windows サービスはどのユーザーの「マイ ドキュメント」を使用しますか?

于 2013-07-02T13:07:23.690 に答える