ログオフ時になぜアプリケーションは、Windows上のシステムアカウントとして実行しているん

StackOverflow https://stackoverflow.com/questions/970765

  •  13-09-2019
  •  | 
  •  

質問

私はマシン上のシステムアカウントで開始され、ユーザーにいくつかのダイアログを提示されたC#アプリケーションを持っています。正規のユーザーがログオフするとアプリケーションも同様に終了します。私は、そのシステムアカウントで実行されているので、それがログインしていないユーザーにもかかわらず実行し続けるだろうと思っているだろう。

これがなぜ起こるか上の任意の情報をいただければ幸いです。

役に立ちましたか?

解決

あなたが(例えば限り、コンピュータが実行されているとしての状態を維持するために)ユーザーがログオフした後にアプリが起動しておきたい場合は、

は、サービスを必要としています。しかし、サービスが強くUIを表示するから、落胆しています。あなたは長時間実行とUIの両方が必要な場合は、あなたのデータを格納するためのサービス、およびそのユーザがログインがUIを表示するたびに実行され、サービスと対話するアプリケーションを作成することを検討します。

他のヒント

サービスアプリケーションのですか?それはあなたがサービスで何をしたいのように聞こえます。あなたが任意のユーザとして任意のプロセスを実行できることに注意してください、それはそれのサービスがありません。あなたのプロセスがサービスとして実装されている場合は、それはログインしていないユーザーでも、引き続き実行されます。

ユーザーセッションは、彼らが呼び出されたアプリケーションが終了される終了時に

これは、セキュリティ機能です。あなたはユーザーセッションの外部で実行するアプリケーションが必要な場合は、それが自身のセッションサービスにメッセージやなとユーザーセッション「に達する」カント以来ます。

しかし、サービスを必要とします

は、Windowsサービスとしてアプリケーションを実行する必要があります。

は、Windowsサービスとしてアプリケーションを作成する必要があります。アプリケーションは、ダイアログが表示されている場合、あなたは、「デスクトップとの対話をサービスに許可」とローカルシステムアカウントの下でそれを実行をチェックする必要があります。

しかし、より良い方法は、あなたが別のアプリケーションを使用して、ユーザーに表示することができますWCFやRemotingを使用してアプリケーションからの照会可能なインターフェイスを公開することです。誰もが、その後ログオンしていないとき、あなたのアプリからの通知をしたい場合は、電子メールを送信するか、別のWCF / Webサービス/リモーティングエンドポイントにイベントを掲載を検討する必要があります。

プロセスはexplorer.exeのによって開始されたので、ユーザは関係なく、それがもとで実行しているものを占めるのログオフ時に、それが終了します。それは単にウィンドウの動作方法です。プロセスがそれを実行し続けることができるようにするには、タスクスケジューラによって開始された可能性のサービスまたはにする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top