2010-02-25 8 views
2

시스템을 부팅 할 때까지 백그라운드에서 실행할 콘솔 응용 프로그램에서 작업하고 있습니다. 이제는 Windows Service를 만드는 것이 최적 일 것이라고 알고 있습니다. 그러나이 경우 인증서 저장소로 intetact 할 수 있어야하며 로컬 서비스 계정 인증서 저장소가 수행 할 것이라고는 생각하지 않습니다.콘솔 응용 프로그램을 백그라운드에서 실행하는 가장 좋은 방법은 무엇입니까?

무한 while 문을 사용하여 bludgening하는 대신 응용 프로그램을 계속 실행하는 System.Timers를 보았습니다.이를 처리하는 논리적 인 방법입니까, 아니면 응용 프로그램을 열어 둘 수있는 더 좋은 방법입니까? 응용 프로그램은 SQL 데이터베이스를 자주 점검하여 수행 할 작업이 있는지 확인합니다.

답변

0

Windows 서비스를 만들고 사용자를 가장하여 필요한 인증서 저장소에 액세스 할 수 있습니다. 이 질문을 참조하십시오 : SO Question

3

적절한 권한을 가진 사용자로 Windows 서비스를 실행할 수 있습니다. 로컬 서비스 계정으로 실행할 필요는 없습니다.

0

지금 나는 Windows 서비스를 만들 최적이 될 것이라는 점을 알고있다, 그러나이 경우 나는 인증서 저장소로 intetact 할 수 있어야하고 나는 생각하지 않는 로컬 서비스 계정 인증서 가게가 할거야. Windows XP의

:

시작 -> 설정 -> 제어판 -> 관리 도구 -> 서비스

을 바로 서비스 -> 속성 -> 탭 - 로그온>이 계정을 클릭 -> 실행할 계정 지정

이것은 Windows Vista 및 Windows 7과 유사하지만 지금은 XP 컴퓨터에 있습니다.

무한 while 문을 사용하여 bludgening하는 대신 응용 프로그램을 계속 실행하는 System.Timers를 보았습니다.이 문제를 처리하는 논리적 인 방법이거나 응용 프로그램을 유지하는 더 좋은 방법입니다 열다?

System.Timers은 정기적으로 작업을 수행하는 것이 좋습니다. 다시 말하지만 Windows 서비스에서이를 구현할 수 있습니다.

1

또는 트레이 아이콘을 사용하여 응용 프로그램을 계속 실행할 수 있습니다 (here for a sample 참조).

Windows 서비스로 응용 프로그램을 실행할 수 있지만 추가 설치 오버 헤드가 필요합니다. 또한 = 내가 OP를 이해하는 한 - 사용자가 로그 아웃 할 때 응용 프로그램이 종료되어야합니다. 이는 Windows 서비스에 해당되지 않습니다. 따라서이 동작이 필요할 때 명시 적으로 닫을 것입니다.

+0

당신은 저를 때려 눕겠습니다 - 나는 트레이 아이콘 앱을 고려할 것입니다. – JMarsch

관련 문제