재부팅 후 Windows 서비스가 자동으로 시작되지 않습니까?


10

.NET으로 작성된 일부 Windows 서비스가 있습니다. mmc 서비스 내에서 수동으로 시작되지만 자동으로 설정되어 있어도 시스템 전원을 켜거나 재부팅 할 때 시작되지 않습니다.

업데이트 이벤트 로그에서 "xyz 시작"이 아닌 다른 모든 서비스 시작과 함께 "xyz 서비스가 중지 된 상태가되었습니다."라는 메시지 만 표시됩니다. "slsvc 서비스로부터의 트랜잭션 응답을 기다리는 동안 시간 종료 (30000 밀리 초)에 도달했습니다"라는 별도의 오류가 있습니다.

수동으로 시작하면 예상대로 이벤트 로그에 정상적인 항목이 표시되고 다음 Windows Update 패치까지 재부팅하면 강제로 모든 서비스가 다시 종료됩니다.

어떤 아이디어? 명백한 차이없이 지연 시작으로 설정하려고했습니다.


예전에는 일부 예약 된 작업과 비슷한 문제가 있었는데, 작업이 만들어진 후 사용자 이름을 변경하여 다시 만들 수 있다는 것을 알게되었습니다. 작업을 삭제하고 다시 작성하여 문제를 쉽게 해결할 수 있음을 알았습니다. 이것과 비슷한 접근법의 가치가 있습니다. 서비스를 제거하고 다시 만드십시오. 방법을 잘 모르는 경우 도움 될 수 있습니다. 참고로, 예약 된 작업 문제가 더 이상 발생하지 않습니다. 어딘가에 일부 업데이트가 수정 된 것 같습니다.
DaveRandom

그들이 아직 시작하지 않은 다른 서비스에 의존하기 때문에 시작하지 못하는지 궁금합니다. 시스템 로그에서 서비스 시작 실패를 볼 수 있습니까?
newmanth

@DaveRandom 재설치는 실제로 새 버전을 배포 할 때마다 발생하므로 불행히도 제거 / 추가로 문제가 해결되는 것으로 보이지 않습니다.
James Crowley

@newmanth 질문은 몇 가지 새로운 세부 사항으로 업데이트되었습니다-내가 놓친 이벤트 로그 항목이 있음이 밝혀졌습니다
James Crowley

Rob의 답변에 대한 귀하의 의견에서 .NET이 유일한 종속성이라는 것을 알았습니다. 개발자가 서비스 개발에 타사 API를 사용했는지 알고 있습니까? 그렇다면 차단되고있는 라이센싱 메커니즘이 있습니까?
newmanth

답변:


3

그에 대한 수정이 있습니다. 참조 : http://support.microsoft.com/kb/922918

문제는 서비스에 ldap 또는 다른 원격 액세스가 필요할 수 있기 때문에 지연이 발생한다는 것입니다. 이것은 특히 서버가 시작될 때 발생할 수 있습니다. 지연을 연장하면 서비스가 시작되도록 할 수 있습니다.

물론이 서비스를 시작하는 데 시간이 오래 걸리는 이유를 해결하는 것이 좋습니다. 환경이 불안정합니까? 서비스 시작이 지연되어 폴링되는 서비스에 대한 성능 문제가 있습니까?


서비스 시작 문제를 구체적으로 어떻게 해결할 수 있습니까? 자세한 로깅을 활성화 할 수있는 방법이 있습니까?
Kenny Evitt

1

"Windows 서비스가 있습니다"라는 말의 의미는 무엇입니까? 그것은 당신의 조직 내 누군가에 의해 내부적으로 만들어 졌다고 제안합니까? 그렇다면이 서비스를 Windows 구성 요소에 어떤 종속성이 있으며 프로그래머가 이러한 서비스의 가용성을 테스트하고 서비스가 시작될 때 온라인 상태가되기를 기다리는 것을 고려하십시오. ?

당신은 (무엇을하는 소프트웨어 라이선스 서비스의 종속성으로 이러한 서비스를 설정하는 생각 해 봤나 slsvc가 있다)?

에서 http://support.microsoft.com/kb/193888

새 종속성을 만들려면 지연하려는 서비스를 나타내는 하위 키를 선택하고 편집을 클릭 한 다음 값 추가를 클릭합니다. REG_MULTI_SZ 데이터 형식으로 새 값 이름 "DependOnService"(인용 부호없이)를 만든 다음 확인을 클릭합니다. 데이터 대화 상자가 나타나면이 서비스 전에 시작하려는 서비스의 이름을 각 줄에 하나씩 입력 한 다음 확인을 클릭하십시오.

데이터 대화 상자에 입력 할 서비스 이름은 서비스 키 아래의 레지스트리에 표시되는 정확한 서비스 이름입니다.

컴퓨터가 시작되면이 항목을 사용하여 종속 서비스를 시작하기 전에이 값에 나열된 서비스가 시작되었는지 확인합니다.


감사합니다 Rob-내부적이지만 유일한 의존성은 .NET 프레임 워크입니다. 그것은 시작할 때 다른 것을 요구하지 않습니다 ...
James Crowley

0

이것으로 시도하십시오 :

다음 명령을 실행하여 환경에 맞는 트리거 이벤트를 정의하십시오. 이 예에서 명령은 IP 주소가 호스트에 제공되는지 여부를 확인한 다음 서비스를 시작 또는 중지합니다.

sc 트리거 정보 w32 시간 시작 / 네트워크 켜짐 중지 / 네트워크 꺼짐

여기서 w32Time은 서비스 이름입니다.

또는 이것을 시도하십시오

https://support.microsoft.com/en-us/kb/922918

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.