2009-12-08 14 views
0

출발 한 개발자로부터 상속 한 Windows 서비스가 있습니다. Windows 서비스는 QA 환경에서 올바르게 실행됩니다. 서비스를 설치하고 로컬로 실행할 때이 오류가 나타납니다.Windows 서비스 시작 후 중지

서비스를 시작할 수 없습니다. System.InvalidOperationException : 요청한 성능 카운터가 사용자 지정 카운터가 아니며 ReadOnly로 초기화되어야합니다. 설치 코드

ExternalDataExchangeService exchangeService = new ExternalDataExchangeService(); 
      workflowRuntime.AddService(exchangeService); 
      workflowRuntime.AddService(new SqlTrackingService(AppContext.SqlConnectionImportLog)); 
      ChallengerWorkflowService challengerWorkflowService = new ChallengerWorkflowService(); 
      challengerWorkflowService.SendDataEvent += new EventHandler<SendDataEventArgs>(challengerWorkflowService_SendDataEvent); 
      workflowRuntime.AddService(challengerWorkflowService); 
      workflowRuntime.StartRuntime(); <---- Exception is thrown here. 

답변

1

확인 : 여기

는 코드입니다. 종종 설치 내에서 카운터가 생성되고 (클라이언트 사이트에서 관리자 권한으로 실행 됨) 코드에서 해당 카운터를 사용하는 것처럼 코드를 사용합니다.하지만 카운터를 만들 것으로 예상하지 않기 때문에 코드를 생성하지 않습니다. 사용 권한.

소스를 가져 와서 실행하면 카운터/카운터 클래스가 없어서 즉시 넘어집니다. (또는 카운터가 존재하는지/서비스에 서비스를 생성하기위한 코드를 작성한 경우 로컬 관리자가 있는지 확인하십시오.)

그렇게 언급하기 전에 확인하십시오.

+0

서비스 프로세스 사용자의 권한을 높여 문제가 해결되는지 확인할 수 있습니다. –

+0

앱이나 설치 프로그램에서 카운터를 찾을 수 없습니다. 내 PC에 관리자로 로그인되어 있습니다. –

+0

코드에서 예상되는 카운터를 찾아 개발자가 작성한 사용자 지정 항목인지 아니면 읽는 Windows 기반 사용자인지 여부를 추적해야합니다. (교환 앱 카운터가되고 QA 상자에는 교환이 있지만 개발 PC에는 교환기가 설치되어 있지 않을 수 있습니다.) – Andrew

0

디버거를 연결하고 InvalidOperationException을 중단합니다 (첫 번째 기회, 즉 throw 될 때)?