Pourquoi une application en cours d'exécution comme le compte système sur Windows lors de la déconnexion

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

  •  13-09-2019
  •  | 
  •  

Question

J'ai une application c # qui est lancé dans le cadre du compte système sur une machine et présente certaines boîtes de dialogue à un utilisateur. Lorsqu'un utilisateur se déconnecte régulièrement l'application est terminée ainsi. J'aurais pensé que, depuis sa course sous le compte système, il continuerait à fonctionner malgré l'utilisateur pas connecté.

Toute information sur pourquoi cela se serait apprécié.

Était-ce utile?

La solution

Si vous voulez que votre application pour continuer à fonctionner après que l'utilisateur a déconnecté (par exemple pour maintenir l'état aussi longtemps que l'ordinateur est en cours d'exécution), vous avez besoin d'un service. Toutefois, les services sont fortement découragés d'afficher l'interface utilisateur. Si vous avez besoin à la fois de longue durée et l'interface utilisateur, envisager d'écrire un service pour stocker vos données, et une application qui fonctionne à chaque fois qu'un utilisateur se connecte à l'interface utilisateur qui montre et interagit avec le service.

Autres conseils

Votre demande est un service? Cela ressemble à ce que vous voulez est un service. Notez que vous pouvez exécuter un processus que tout utilisateur, mais cela ne rend pas un service. Si votre processus est mis en œuvre en tant que service, il continuera à fonctionner même sans utilisateurs connectés.

Ceci est une fonction de sécurité lors d'une session des utilisateurs se termine applications qu'ils invoquaient sont terminées. Si vous avez besoin d'une application à exécuter en dehors d'une session d'utilisateurs dont vous avez besoin d'un service mais depuis son dans ses propres services de session cant « mettre la main dans » la session des utilisateurs avec des messages et autres.

Vous devez exécuter votre application en tant que service Windows.

Vous devez créer votre application en tant que service Windows. Si votre application affiche les boîtes de dialogue, vous devrez cocher la case « Autoriser le service à interagir avec le bureau » et l'exécuter sous le compte système local.

Cependant, une meilleure approche serait d'exposer une interface interrogeable à partir de votre application en utilisant WCF ou Remoting que vous pouvez afficher aux utilisateurs à l'aide d'une application séparée. Si vous souhaitez que les notifications de votre application quand personne est connecté, alors vous voudrez peut-être envisager d'envoyer des e-mails ou de poster des événements à un WCF séparé / Web Services / point final Remoting.

Parce que le processus a été lancé par explorer.exe, il sera mis fin lorsque l'utilisateur se déconnecte, peu importe ce compte qu'il fonctionne sous. C'est tout simplement les fenêtres ainsi que fonctionne. Pour permettre au processus de continuer à fonctionner, il doit être un service ou peut-être commencé par le planificateur de tâches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top