2011-04-22 6 views
1

http://www.csharp-examples.net/restart-windows-service/에서 코드를 가져와 Windows 서비스를 다시 시작했지만 코드를 어디에 둘 것인지 확실하지 않습니다.Windows 서비스를 다시 시작하는 방법은 무엇입니까?

내 응용 프로그램에 Windows 서비스가 설치된 후 Windows 서비스를 다시 시작해야합니다.

감사합니다.

EDITED

private void ProjectInstaller_OnAfterInstall(object sender, InstallEventArgs e) 
    { 
     //base.OnAfterInstall(e); 
     ServiceController sc = new ServiceController("MyServiceName", Environment.MachineName); 
     sc.Start(); 
     System.Threading.Thread.Sleep(3000); 
     sc.Stop(); 
     System.Threading.Thread.Sleep(2000); 
     sc.Start(); 
     System.Threading.Thread.Sleep(3000); 
    } 
+1

사회자 : 해결책이 있습니다. 나는 입력 한 코멘트를 주셔서 감사하지만 그들 중 아무도 내가 따라서 질문을 삭제하고자하는 도움이되었습니다. –

답변

2

내가 당신을 생각하지 않는 응용 프로그램에서 실행해야합니다 설치 후 설치해야합니다. 설치 프로그램은 설치 후 아마 어쨌든 서비스를 시작할 것이고,이 작업을 수행하는 지저분한 방법처럼 보입니다. 작은 응용 프로그램이나 .dll을 만들 수 있습니다. 필요한 경우이 작업을 수행 할 수 있으며 모든 것이 끝나면 설치 프로그램 자체에서 호출 할 수 있습니다. 그러나 나는 을 조사 할 것입니다. 이유는은 설치 후 서비스를 다시 시작해야합니다. 이는 대부분 프로그램의 버그를 가리키고 있기 때문입니다. 그것을 해결하기 쉬워야합니다.

이 기능을 사용하면 다시 시작해야합니다. 서비스가 시작/중지하는 데 그 이상의 시간이 걸릴 수 있으므로 절전 모드를 사용하지 마십시오. 예외가 발생합니다.

var sc = new ServiceController("MyService"); 
sc.Stop(); 
sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30)); 
sc.Start(); 
sc.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30)); 
0

당신이 서비스를 설치 일부 응용 프로그램이 가정, 코드 (서비스 제어, 그렇지 않으면 나) 다시 시작

+0

답장을 보내 주셔서 감사합니다. 그러나이 서비스를 어디서 실행해야합니까? –

관련 문제