2009-04-13 3 views
3

내가 3 Windows 서비스 질문 WS 백그라운드에서 작업 할 수 있나요Windows 서비스 질문

  1. 있다? 2 분마다 일을 할 수 있습니까? (예인 경우 도움을 얻을 수 있습니까?)

  2. 간단한 방법으로 WS를 어떻게 설치할 수 있습니까? (Installutil.exe가 아닌 .......)

  3. Windows 서비스에서 .exe 파일을 어떻게 실행합니까?

나는이 방법으로 시도했다 :

System.Diagnostics.Process G = new Process(); 
    G.StartInfo.FileName = @"d:\demo.exe"; 
    G.Start(); 

을했지만 작동하지 않았다.

답변

2
  1. 예 Windows 서비스는 백그라운드에서 작동 할 수 있으며 작동합니다. 같은 작업을 2 분마다 수행하려면 system.Timer 클래스를 사용하고 코드를 onElapsed 이벤트에 넣으십시오. 최근에이 유형의 서비스를 만들었으며 사용할 수있는 두 가지 유형의 타이머가 있음을 확인했습니다. 올바른 타이머를 사용했는지 확인하거나 onElapsed 이벤트를 찾을 수 없습니다.

  2. InstallUtil.exe없이 설치를 시도하지는 않았지만 주 응용 프로그램 설치의 일부로 실행되는 .bat 파일을 사용하고 있습니다.

내가 사용한 Windows 서비스에서 .EXE를 실행하려면 Windows 서비스에서이 .exe 실행에 대한 귀하의 후속 질문 :

Process p = new Process(); 
p.StartInfo.WorkingDirectory = @"C:\"; 
p.StartInfo.FileName = @"C:\demo.exe"; 
p.StartInfo.CreateNoWindow = true; 
p.Start(); 
p.WaitForExit(); 

은 실행 파일이 실행됩니다 기억 서비스와 동일한 레벨로 데스크탑에 아무 것도 표시 할 수 없습니다. 열려있는 창을 보려고하거나 .exe에 사용자 입력이 필요한 경우 실망하게되며 .exe가 무기한 대기 할 수 있습니다. (나는이 링크가 Launch external programs에 도움이된다는 것을 알았고 SO-Launching an Application (.EXE) from C#에 대해서도이 질문이있다)

6
  • 예 사용 Timer 클래스 (example)

    InstallUtil.exe는 의 문제가 무엇
  • ? 만약 당신이 그것을 좋아하지 않아, VS.NET과 함께 설치 프로그램을 생성하지만 installutil.exe 그것은 내가 아는 한 항상 배경에 있습니다. (Complete example 1, Complete example 2)

4

Windows 서비스는 기본적으로 백그라운드에서 작동합니다. 그들은 시작 직후에 서비스 관리자에게 제어권을 돌려 줄 것으로 예상되므로 일반적으로 서비스 작업을 처리하기 위해 스레드를 시작합니다.

즉, System.Threading.Timer 클래스는 일정한 간격으로 실행되는 타이머를 시작하는 데 적합해야합니다.

설치시 Installutil.exe를 사용해야합니다. 이것은 Windows 서비스를 설치하는 표준 방법입니다.

나는 this codeproject article.을 사용하는 것이 좋습니다. 사용할 수있는 좋은 깨끗한 템플릿이 있습니다. 또한, Installutil의 사용을 단순화하는 배치 파일 예제가 있는데, 이는 "더 나은"방법이 될 수 있습니다.

2

VS2008로 개발중인 경우 Windows 서비스를 만드는 데 사용할 수있는 템플릿이 있습니다.

기본적으로 Timer (System.Windows.Timers.Timer)를 만들고 OnStart 메서드에 대한 초기화 작업을 수행하고 OnStop 메서드에서 내용 정리 및 마무리 작업을 수행하고 Timer를 초기화합니다 (OnStart에서 또는 요구시 작동)

당신은 설치에 timers

과 예를 들어, 여기에 basic example 또는이 볼 수있는 또 다른 답변에서 옵션 외에, 당신은 또한 템플릿을 확인, 다시 설치 관리자 프로젝트 만들 수 있습니다 프로젝트

1

또한 sc.exe를 사용하여 서비스로 서비스를 설치할 수 있지만 실제로 설치를위한 InstallUtil.exe와 크게 다르지 않다. . 명령 줄에서 서비스에 대한 제어 기능을 제공합니다.

Here is an older article describing sc.exe's use. 또한 명령 프롬프트에서 sc를 실행하면 가능한 명령이 표시됩니다.

0

서비스를 만드는 것이 너무 어려우면 2 분마다 실행되도록 작업을 예약 할 수 있습니다.