2016-11-03 2 views
-1

서버에 배포하려고하는 Windows 서비스를 만들었습니다.설치 프로그램의 OnAfterInstall 이벤트 처리기에서 예외가 발생했습니다.

관리자 권한으로 명령 프롬프트를 사용하여 설치하려고합니다.

설치

: 예외는 onafterinstall 이벤트 핸들러 발생

error in CMD

[RunInstaller(true)] 
public partial class ProjectInstaller : System.Configuration.Install.Installer 
{ 
    public ProjectInstaller() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnAfterInstall(IDictionary savedState) 
    { 
     base.OnAfterInstall(savedState); 

     //The following code starts the services after it is installed. 
     using (System.ServiceProcess.ServiceController serviceController = new System.ServiceProcess.ServiceController(serviceInstaller1.ServiceName)) 
     { 
      serviceController.Start(); 
     } 
    } 

    private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e) 
    { 
     //this.serviceProcessInstaller1.Account = ServiceAccount.LocalSystem; 
    } 

    private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e) 
    { 

    } 
} 

그리고 같은 오류가 발생,

또한,

System.InvaldiOperationException : 컴퓨터에서 서비스를 시작할 수 없습니다. 등

신속한 해결책?
유사 게시물 : Post-1, 서비스에 대한 Post-2

+0

OnStart() 메서드 재정의가 너무 길면 시간이 오래 걸립니다. 우리는 여기서 그것을 볼 수 없습니다. –

답변

1

그 오류 메시지가 "적시에 응답하지는"서비스가 어떤 방법으로 파괴되는 것을 의미한다. Start 메커니즘은 화재와 잊지 디자인이 아니며 서비스 시작 코드에 대한 호출과 같습니다. 이 서비스는 시작 코드를 (적시에) 종료하여 실행 중임을 나타냅니다. 기본 코드를 초기화 한 다음 스레드를 인스턴스화하여 서비스의 주요 작업을 수행하는 대신 시작 코드가 인라인 작업을 너무 많이 수행하고있는 것 같습니다. 또는 어딘가에 매달려 있습니다.

+0

예, 실제로 서비스는 각각 50000 개의 URL을 포함하는 9-10 개의 XML 파일을 생성합니다. 그 사이에 걸려있는 꽤 거대한 작업입니다! – Vikrant

관련 문제