2011-03-27 5 views
2

TopShelf을 기반으로 간단한 Windows 서비스를 작성하고 있습니다. 내 응용 프로그램을 서비스로 설치하는 방법은 무엇입니까? SpyService.exe install을 실행하려고했지만 작동하지 않습니다.콘솔 응용 프로그램을 Windows 서비스로 설치

서비스를 구성하는 다음 두 가지 방법의 차이점은 무엇입니까?

var host = HostFactory.New(x => 
{     
    x.Service<SpyService>(s => 
    { 
     s.SetServiceName("SpyService"); 
     s.ConstructUsing(name => new SpyService()); 
     s.WhenStarted(service => 
     { 
      XmlConfigurator.ConfigureAndWatch(new FileInfo(".\\log4net.config")); 
      service.Start(); 
     }); 
     s.WhenStopped(service => service.Stop()); 
    }); 

    x.RunAsLocalSystem(); 
    x.SetDescription("Сервис логирования действий пользователя."); 
    x.SetDisplayName("SpyService"); 
    x.SetServiceName("SpyService"); 
}); 

host.Run(); 

var cfg = RunnerConfigurator.New(
    x => 
    { 
     x.ConfigureService<SpyService>(s => 
     { 
      s.Named("SpyService"); 
      s.HowToBuildService(name => new SpyService()); 
      s.WhenStarted(tc => { 
       XmlConfigurator.ConfigureAndWatch(new FileInfo(".\\log4net.config")); 
       tc.Start(); }); 
      s.WhenStopped(tc => tc.Stop()); 
     }); 
     x.RunAsFromInteractive(); 

     x.SetDescription("Сервис логирования действий пользователя."); 
     x.SetDisplayName("SpyService"); 
     x.SetServiceName("SpyService"); 
    }); 

Runner.Host(cfg, args); 

는 내가 두 번째 방법을 사용하는 경우 서비스가 성공적으로 설치되어있는 것으로 나타났습니다하지만 첫 번째 방법에서와 같이 x.RunAsFromInteractive()과 서비스를 시작할 수 없다.

+0

오류 메시지가 무엇입니까? –

+0

명령을 실행 했습니까? –

+0

안녕하세요! 당신에게 이런 식으로 묻기를 용서해 주셨습니다.하지만 다른 대화 방법은 없습니다. mysql 날짜 질문에서 귀하의 답변을 취소하십시오! 아무것도 그걸로 잘못되었습니다. –

답변

1

사용중인 Topshelf의 버전은 무엇입니까? 이전 구문은 SpyService.exe service install 이었지만 단순화되었습니다.

+0

전회의 판을 사용하고 있습니다. – akrisanov

+0

첫 번째 방법과 두 번째 방법에서 질문에 따라 첫 번째 방법 만 콘솔 응용 프로그램 시작 지점에서 명령 줄 인수를받습니다. 두 번째 방법은 실제로 지원되어서는 안됩니다. – Travis

0

첫 번째 방법은 afaik 최신 버전 (2.2)에서 폐기되었습니다.

public void RunAsFromInteractive() 
{ 
    this.RunAs("", ""); 
} 
0

먼저 관리자로 콘솔 명령을 실행할 수 있습니다, 다음을 실행하십시오 topshelf 소스 코드를보고 RunAsFromInteractive()에 관한

는, 나는 그것이 빈 사용자 이름/암호를 RunAs가()라는 것을 알 수 설치 명령

관련 문제