2012-05-31 2 views
2

Windows가 시작될 때 시작되는 .net 서비스가 있고 서비스가 시작되지 않는 경우가 있습니다 (완전히 무작위).Windows 시작시 .net 서비스 시작 시간 초과

이벤트 뷰어를 보여줍니다 A timeout was reached (30000 milliseconds) while waiting for the MYSERVICE service to connect.

에도 서비스가 내가 수동으로 시작하면 시작하는 데 실패 컴퓨터에 (Windows 로그온 후)는 미세 시작합니다.

내 시작 방법은 매우 기본이며, 실제 시작 논리를 가진 새로운 스레드를 시작합니다 (일반적으로 매우 빠름).

내 서비스에는 .net 3.5 sp1이 필요하며 이러한 문제가있는 컴퓨터는 win7 x64입니다. .net 프레임 워크와 관련이 있다고 생각하지만 어떻게해야할지 모르겠다. 이것은 클라이언트 컴퓨터에서 발생하며 .net 4 클라이언트 프로필이 설치되어 있습니다.

아이디어가 있으십니까?

+0

서비스를 시작하는 동안 어떤 일이 벌어지고 있는지 확인하기 위해 애플리케이션에 로그인을 추가 했습니까? – mservidio

+0

Windows 이벤트 로그에 로그를 추가했습니다. 로그는이를 보여줍니다. 내 '기본'이 시작되지만 '시작'방법에 도달하지 못합니다. – jacob

답변

1

나는 이와 같은 문제가있었습니다. 일반적으로 시동시 기계 부하로 인한 것입니다. 예를 들어 많은 다른 서비스가 시작되어 SQL Server에서이 오류가 발생했습니다.

간단한 수정 방법은 서비스가 지연 모드에서 시작되도록 설정하는 것입니다. 그러면 서비스가 CPU 및 HD 부하가 적게 발생하기 때문에 시작됩니다.

+0

지연 모드로 시작하려면 어떻게해야합니까? – jacob

+1

관리 도구, 서비스, 속성 – Paparazzi

+0

현재이 문제도 발생하고 있으며 지연된 시작으로 설정합니다 (WiX 설치 관리자가있는 경우 첨부 할 수있는 속성 임). 내 새로운 문제는 컴퓨터가 시작된 후 최대 15 분 동안 '자동 (지연됨)'이라는 일부 컴퓨터에서이 해결 방법을 구현하는 사람들과 관련이있을 수 있으므로 공유하고 싶다는 것입니다. – JoshHetland

1

다른 서비스에 종속 된 경우 종속성을 설정하십시오.

0

Windows 10에서 대부분의 .Net 기반 서비스가 시작될 때 실패하지만 나중에 수동으로 시작할 수있는 유사한 문제가있었습니다. 어떤 이유로 .NET에서 작성된 서비스는 Windows 10에서 시작하는 데 오랜 시간이 걸리지 만 Windows 7을 비롯한 모든 Windows 버전에서 작동합니다. 기본적으로 서비스가 응답하지 않고 시작하는 데 30 초 이상이 걸리면 서비스는 Windows에 의해 종료됩니다.

레지스트리에서이 동작을 60 초로 변경할 수있었습니다. 이미 존재하지 않는 경우 DWORD "ServicesPipeTimeout"(마이너스 따옴표)라고 (32 비트) 키를 생성, 관리 \ \

HKLM \ 시스템 \ CURRENTCONTROLSET

을 :로 이동합니다. 값을 60000 (십진수)으로 설정하십시오. 이는 밀리 초 단위로 60 초와 관련이 있습니다.

는 난이 자동화하는 regfile을 만들어 : "ServicesPipeTimeout"[제어 \ CURRENTCONTROLSET \ HKEY_LOCAL_MACHINE을 \ 시스템] 버전

5.00

Windows 레지스트리 편집기를 = DWORD : 0000ea60

메모장에 붙여 넣고 .reg 파일로 저장하기 만하면됩니다.

이것은 이 아니며은 지연 시작이지만 서비스 시작 후 응답 시간은 증가합니다. 이로 인해 여러 컴퓨터에서 문제가 해결되었습니다. 안타깝게도 .NET 서비스가 시작되는 데 너무 오래 걸리는 이유가 무엇인지 알지 못합니다. 그러나, 나는 이것이 Microsoft 버그라고 느낀다. 그리고 사용자가 잘못하고있는 것은 아니다.