2011-08-31 4 views
4

오늘은 C#에서 내 첫 Windows 서비스를 구축했습니다.Windows 서비스 일반 질문

당신이 나를 도와 준다면 나는 행복하고 감사할만한 몇 가지 문제가 있습니다.

1) 내 서비스를 설치할 때 서비스가 실행되고 있지만 모든 것이 Windows 작업 관리자에 표시되지 않습니다. 왜 그걸 알아?

2) 시스템 트레이를 넣으려고하면 아이콘을 넣을 수 없기 때문에 할 수 없습니다. 윈도우 서비스에서 System.Drawing이 없다 .. 내가 그것에 대해 무엇을 할 수 있을까?

3)

protected override void OnContinue() 
{ 
    //eventLog1.WriteEntry("In OnContinue."); 
} 

"OnContinue"는하지 않습니다 무엇?

나는 그것을 이해할 수 없었다.

답변

4

서비스는 당신이 비스타/윈도우 7에서 실행되고 있는지와 서비스 계정으로 실행되고 있지 있으리라 믿고있어

Windows 작업 관리자에 표시되지. 따라서 작업 관리자의 "프로세스"탭에서 "모든 사용자의 프로세스 표시"라고 말하면 서비스를 볼 수 있습니다 (아마도 default Windows accounts 중 하나에서 실행 중일 것입니다).

"응용 프로그램"탭에는 서비스가 표시되지 않으며 서비스는 이 아니며이 나타납니다.

에 대한 아이콘 트레이 Windows 서비스 윈도우 비스타에서, 서비스가 데스크톱과 상호 작용하도록 허용되지 않습니다에

; 이 작업을 계속할 수는 있지만 여러 컴퓨터가 여러 데스크톱에 로그온 한 상태에서 여러 명의 사용자가 상호 작용할 수 있습니다. 터미널 서버/여러 원격 데스크톱 세션을 생각해보십시오.

서비스 아이콘을 표시하는 방법은 트레이에 아이콘 표시를 담당하는 서비스 (WCF 또는 Remoting과 같은 것을 사용)와 통신하는 프로그램을 만드는 것입니다.

서비스에 아이콘이 필요하면 Microsoft Management Console에 대한 플러그인을 만들고 WCF/Remoting을 통해 서비스와 통신하십시오.documentation for the OnContinue method에서

OnContinue

: A는 명령은 서비스 제어 관리자 (SCM)에 의해 서비스로 전송됩니다 계속되면

파생 클래스에서 구현, OnContinue가 실행됩니다. 일시 중지 된 후 서비스가 정상적으로 작동 할 때 취할 조치를 지정합니다. .

기본적으로 서비스가 일시 중지 될 수 있고 중단되지 않으면 서비스가 다시 시작될 때이 서비스가 호출됩니다.

+0

! 당신은 내가 원하는 모든 것을 대답했습니다! 당신의 awasome 젠체하는 사람! 고마워 allllooottt! –

+0

@ Alon M : 문제 없으니 기꺼이 도와주세요. =) – casperOne

1

1) 서비스가 "서비스"관리 콘솔에서 실행중인 것으로 표시되면 서비스의 작업 관리자에 프로세스가 표시되어야합니다. 서비스가 백그라운드에서 실행되므로 "응용 프로그램"탭에 아무 것도 표시되지 않습니다. 그러나 "프로세스"탭에는 서비스를 설치하는 데 사용한 실행 파일 항목이 표시됩니다.

3) Windows 서비스의 OnContinue() 메서드는 서비스가 "일시 중지됨"상태에서 "Started"상태로 돌아갈 때 발생할 동작을 정의합니다.

+0

1. 나는'svchost.exe' 프로세스 중 하나에서 실행될 것이라고 생각합니다. 다른 두 가지를 수정하십시오. (서비스에서 Users 데스크탑을 사용하려고 시도하는 것은 좋지 않지만 2는 아마도 좋은 생각이 아닙니다.) – jadarnel27

+0

@ jadarnel27 - 여러 서비스를 작성했는데 항상 표시됩니다. 내 프로젝트가 컴파일 된 실행 파일의 이름을 사용하는 프로세스 목록. – pmartin

+0

와우. 나는 지옥처럼 미쳤다. 방금 PC에서 작업 관리자를 살펴 보았습니다. 내가 작성한 서비스는 실행 파일 이름으로 실행됩니다 (앞에서 말한대로). +1. -1 for me =) – jadarnel27