로그 오프 할 때 응용 프로그램이 Windows에서 시스템 계정으로 실행되는 이유

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

  •  13-09-2019
  •  | 
  •  

문제

시스템의 시스템 계정 아래에서 시작된 AC# 응용 프로그램이 있으며 사용자에게 몇 가지 대화 상자를 제공합니다. 일반 사용자가 로그 오프하면 응용 프로그램도 종료됩니다. 시스템 계정에 따라 실행 된 이후 사용자가 로그인하지 않았음에도 불구하고 계속 실행될 것이라고 생각했을 것입니다.

이런 일이 발생하는 이유에 대한 정보는 감사하겠습니다.

도움이 되었습니까?

해결책

사용자가 로그온 한 후 앱이 계속 실행되기를 원한다면 (예 : 컴퓨터가 실행되는 한 상태를 유지하기 위해) 서비스가 필요합니다. 그러나 서비스는 UI 표시를 강력하게 권장하지 않습니다. 장기 실행과 UI가 모두 필요한 경우 데이터를 저장하기위한 서비스를 작성하고 사용자가 UI를 표시하고 서비스와 상호 작용하는 사용자 로그인 할 때마다 실행되는 응용 프로그램을 고려하십시오.

다른 팁

응용 프로그램이 서비스입니까? 당신이 원하는 것이 서비스 인 것 같습니다. 모든 프로세스를 사용자로 실행할 수 있지만 서비스가되지는 않습니다. 프로세스가 서비스로 구현되면 사용자 로그인이 없어도 계속 실행됩니다.

이는 사용자 세션이 호출 한 응용 프로그램을 종료 할 때 보안 기능입니다. 사용자 세션 밖에서 실행하려면 애플리케이션이 필요한 경우 서비스가 필요하지만 자체 세션 서비스에서는 "사용자 세션"에 도달 할 수 없기 때문에 서비스가 필요합니다.

응용 프로그램을 Windows 서비스로 실행해야합니다.

응용 프로그램을 Windows 서비스로 만들어야합니다. 응용 프로그램에 대화 상자가 표시되면 '서비스가 데스크탑과 상호 작용할 수있는 서비스'를 확인하고 로컬 시스템 계정에서 실행해야합니다.

그러나 더 나은 접근 방식은 별도의 응용 프로그램을 사용하여 사용자에게 표시 할 수있는 WCF 또는 원격을 사용하여 응용 프로그램에서 쿼리 가능한 인터페이스를 노출시키는 것입니다. 아무도 로그인하지 않을 때 앱에서 알림을 원한다면 전자 메일 보내기 또는 이벤트를 별도의 WCF/ 웹 서비스/ 원격 엔드 포인트에 게시하는 것을 고려할 수 있습니다.

프로세스는 Explorer.exe에 의해 시작되었으므로 사용자가 실행중인 계정에 관계없이 사용자가 로그 오프하면 종료됩니다. 그것은 단순히 Windows의 작동 방식입니다. 프로세스가 계속 실행되도록하려면 서비스 일 또는 작업 스케줄러가 시작해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top