¿Por qué una aplicación que funciona como la cuenta del sistema de ventanas al cerrar la sesión

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

  •  13-09-2019
  •  | 
  •  

Pregunta

Tengo una aplicación C #, que se puso en marcha bajo la cuenta del sistema en una máquina y presenta algunos cuadros de diálogo al usuario. Cuando un usuario regular cierra la sesión en la aplicación se termina también. Yo hubiera pensado que, desde su ejecuta bajo la cuenta del sistema que continuaría para funcionar a pesar de que el usuario no está conectado.

Cualquier información sobre por qué sucede esto sería apreciada.

¿Fue útil?

Solución

Si desea que su aplicación siga funcionando después de que el usuario ha cerrado la sesión (por ejemplo, para mantener el estado durante el tiempo que el equipo está funcionando), necesita un servicio. Sin embargo, los servicios No se recomienda que se muestre la interfaz de usuario. Si necesita tanto de larga ejecución y la interfaz de usuario, que no hacer un servicio para almacenar sus datos, y una aplicación que se ejecuta cada vez que un usuario inicia sesión en que se muestra la interfaz de usuario e interactúa con el servicio.

Otros consejos

Es el uso de un servicio? Suena como lo que quieres es un servicio. Tenga en cuenta que puede ejecutar cualquier proceso como cualquier usuario, pero eso no significa que sea un servicio. Si el proceso se implementa como un servicio, entonces continuará funcionando incluso cuando no hay usuarios conectados.

Esta es una característica de seguridad cuando se termina una sesión de usuarios de aplicaciones que invocan se terminan. Si necesita una aplicación se ejecute fuera de una sesión de usuarios que necesita un servicio sin embargo, desde sus servicios en sus propios servicios de sesión peralte "introduzca las manos en" la sesión de los usuarios con mensajes y tal.

Es necesario para ejecutar la aplicación como un servicio de Windows.

Usted tendrá que crear su aplicación como un servicio de Windows. Si la aplicación muestra los cuadros de diálogo a continuación, lo que se necesita para comprobar el 'servicio permiten interactuar con el escritorio' y ejecutar el programa bajo cuenta del sistema local.

Sin embargo, un mejor enfoque sería exponer una interfaz consultable desde la aplicación utilizando WCF o comunicación remota que puede mostrar a los usuarios mediante una aplicación independiente. Si desea que las notificaciones de la aplicación cuando nadie está conectado entonces es posible que desee considerar el envío de mensajes de correo electrónico o publicar eventos a un WCF / Servicios Web / punto final Remoting separado.

Debido a que el proceso fue iniciado por explorer.exe, se dará por terminado cuando el usuario cierra la sesión, independientemente de lo que tener en cuenta que se está ejecutando bajo. Eso es simplemente la manera de funcionar de Windows. Para permitir que el proceso continúe su ejecución tiene que ser un servicio o posiblemente iniciado por el programador de tareas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top