マシンで Windows サービスを実行しています。私がするとき
Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments)
空の文字列が表示されますが、コンソール アプリケーションで同じことを行うと、MyDocuments フォルダーの正しい場所が表示されます。
なぜそれが起こっているのかについてのアイデアはありますか?
マシンで Windows サービスを実行しています。私がするとき
Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments)
空の文字列が表示されますが、コンソール アプリケーションで同じことを行うと、MyDocuments フォルダーの正しい場所が表示されます。
なぜそれが起こっているのかについてのアイデアはありますか?
これは、アプリケーションをコンソールとして実行すると、ユーザーとしてコンピューターにサインインして実行しているため、「マイ ドキュメント」にアクセスできるためです。Windows サービスが (デフォルトで) 実行されている場合、「マイ ドキュメント」フォルダを持たないローカル システムとして実行されます。これは、コンピューターの起動時に Windows サービスが実行され、ユーザーがサインインする必要がないためです。
問題は、「マイ ドキュメント」フォルダで何をしようとしているのかということです。Windows サービスは、おそらくユーザーに依存しない場所にアクセスしたいと考えていますか?
最後に、コンピュータに 10 人のユーザーがセットアップされていると想像してください。まだ誰もサインインしていない場合、Windows サービスはどのユーザーの「マイ ドキュメント」を使用しますか?