User mode2014. 3. 7. 15:56

ERROR_SERVICE_REQUEST_TIMEOUT
1053 (0x41D)

The service did not respond to the start or control request in a timely fashion.

-> 서비스가 시작이나 제어 요청에 빠르게 응답하지 않았습니다.




어느 순간부터 갑자기 잘 쓰던 서비스가 1053 에러를 내뱉으며 실행이 되지 않는 현상이 발생하였다.

최근에 했던 작업이 기존에는 서비스 파일을 실행 파일과 같은 폴더에 두었다가 시스템 경로로 복사하여 실행을 하는 방식에서

실행 파일의 리소스에 포함하고 추출하여 실행하는 방식으로 변경을 하였다.

당연히 여기서 뭔가 잘못한줄 알았는데 이상하게 서비스를 디버그로 빌드했을 때만 계속 발생을 하였다.

그것도 64bit PC에서만 발생.


이틀동안 구글을 뒤져가며 말도 안되는 테스트를 수십차례 했을까

검색해서 나온 답이라고는 전혀 상관없는 답변밖에 못찾았다.

1. FrameWork .NET 1.1 최신버전을 깔아라. (아주 오래전 문제였었던듯?)

2. 서비스가 시작명령을 받고 3분 이내에 running 상태가 안되고 있는지 확인해라. (블럭이 됐다든가..)


그러다 결국 원인을 찾았는데 너무 허무해서 헛웃음이 절로 난다.

무심코 ollydbg로 서비스 파일을 오픈하니 너무 익숙한 오류 창이 떴다.


"컴퓨터에 MSVCR71D.dll이(가) 없어 프로그램을 시작할 수 없습니다.

 프로그램을 다시 설치하여 이 문제를 해결 하십시오."






엌ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

그렇다. 디버그로 빌드해서 저 파일이 없어서 그랬던 것이다.

인터넷에서 다운받아서 시스템 폴더에 넣어주니 잘 동작한다.

64bit PC에서만 안됐던 이유는 테스트 PC라 포맷한지 얼마 안되서 전에 넣어뒀던 저 파일이 없어서 그랬었다.

근데 대체 왜 저딴 에러메세지가 뜨냐고 ㅠㅠ

아무튼 이틀간의 대삽질을 종료하며 누군가에게 도움이 되길..


Posted by hswang