요즘은 .NET Framework 기반으로 제작되는 프로그램들이 많습니다. 그래서 프로그램에서 필요로 하는 .NET Framework 를 설치하게 되죠. 그런데 .NET Framework 4.0 을 설치한 이후부터 갑자기 아래와 같은 증상들이 나타나는 경우가 있습니다.
1. 바탕 화면 진입 후 아이콘이 표시되는데 딜레이가 발생.
2. 윈도우 탐색기를(내 컴퓨터) 실행시키면 딜레이 발생.
3. 웹 브라우저를(인터넷 익스플로러 등) 실행시키면 딜레이가 발생하거나, 실행되더라도 그 시간 동안 사이트를 읽지 못함.
2. 윈도우 탐색기를(내 컴퓨터) 실행시키면 딜레이 발생.
3. 웹 브라우저를(인터넷 익스플로러 등) 실행시키면 딜레이가 발생하거나, 실행되더라도 그 시간 동안 사이트를 읽지 못함.
이는 윈도우로 진입한 직후에 윈도우 탐색기나 인터넷 익스플로러를 실행하면 대략 1분여 정도 아무런 응답이 없는 현상을 말합니다. 그러다 어느 순간 마치 막혔던 논둑에 봇물이 터진 것 마냥 앞서 실행하려 했던 윈도우 탐색기나 인터넷 익스플로러가 줄줄히 실행되죠. 이러한 현상은 주로 윈도우 XP 에서 많이 발생하는 편입니다.
일단 간단하게 해당 문제가 발생하는 원인은 다음과 같습니다. .NET Framework 는 설치된 후 초기에 .NET Framework 의 성능을 올리기 위해 현재 시스템에 맞게 컴파일하는 과정이 진행되는데, 이러한 컴파일 과정이 정상적으로 완료되지 못하게 되면, 윈도우 시작시 실행되도록 등록된 .NET Framework NGEN 서비스에서 문제가 생겨(해당 서비스에서 딜레이 발생) 위와 같은 문제들이 발생하는 것이죠.
아무튼, 이러한 .NET Framework 4.0 설치 후 발생하는 딜레이 문제는 아래와 같은 방법들로 해결할 수 있습니다.
▼ NGEN 컴파일 작업을 수동으로 진행하여 문제 해결
이는 .NET Framework 에서 정상적으로 진행하지 못한 컴파일 작업을 수동으로 진행해주는 것입니다. 방법은 아래와 같습니다.
01. 명령 프롬프트를 실행한 후 CD 명령을 통해 윈도우 폴더 하위에 설치된 .NET Framework 폴더로 이동합니다.
02. Dir 명령을 통해 4.0 버전의 폴더 이름을 확인합니다. [보통 v4.0.30319, 여러 개라면 가장 마지막 버전의 폴더로] 이후 동일하게 CD 명령을 통해 확인한 폴더로 이동합니다.
03. .NET Framwork 4.0 폴더로 정상 진입하였으면 마지막으로 아래의 NGEN 명령을 내립니다. 해당 작업에는 어느 정도 시간이 걸리니 완료될 때까지 기다립니다.
04. 명령이 모두 완료되면 윈도우를 재시작하여 딜레이 문제가 해결되었는지 확인합니다.
cd %WinDir%\Microsoft.NET\Framework
02. Dir 명령을 통해 4.0 버전의 폴더 이름을 확인합니다. [보통 v4.0.30319, 여러 개라면 가장 마지막 버전의 폴더로] 이후 동일하게 CD 명령을 통해 확인한 폴더로 이동합니다.
03. .NET Framwork 4.0 폴더로 정상 진입하였으면 마지막으로 아래의 NGEN 명령을 내립니다. 해당 작업에는 어느 정도 시간이 걸리니 완료될 때까지 기다립니다.
ngen eqi
04. 명령이 모두 완료되면 윈도우를 재시작하여 딜레이 문제가 해결되었는지 확인합니다.
그런데 한 가지! 이렇게 NGEN 컴파일 작업을 마치고 문제가 해결된 이후에 윈도우 업데이트를 통해 .NET Framework 가 업데이트된 경우(보안 업데이트 등) 다시 동일한 문제가 발생할 수 있습니다. 그럴 땐 동일하게 위의 NGEN 컴파일 작업을 다시 한 번 더 진행하시면 됩니다.
▼ NGEN 서비스를 수동으로 전환
만약 위와 같은 수동 컴파일 방법으로 문제가 해결되지 않는다면, 문제가 되는 .NET Framework NGEN v4.0 서비스의 실행을 수동으로 전환하거나 사용 안함으로 설정하여 문제를 회피할 수 있습니다.
01. 실행[Windows Key + R] -> Services.msc 를 실행하여 서비스 관리 도구를 띄우고, Microsoft .NET Framework NGEN v4.0.30319_xXX 서비스를 찾습니다. 찾았으면 더블 클릭하여 열어줍니다.
02. 아래와 같이 서비스의 시작 유형을 수동 또는 사용 안 함으로 바꿔준 후 확인 버튼을 클릭합니다.
03. 윈도우를 재시작하여 문제가 해결되었는지 확인합니다.
02. 아래와 같이 서비스의 시작 유형을 수동 또는 사용 안 함으로 바꿔준 후 확인 버튼을 클릭합니다.
03. 윈도우를 재시작하여 문제가 해결되었는지 확인합니다.
대부분은 위의 두 가지 방법으로 문제가 해결될 겁니다. 그런데 만약에 이러한 방법들을 사용해도 문제가 해결되지 않는다면 .NET Framework 4.0 을 깨끗하게 제거하시고, 다시 설치하여 보시길 바랍니다. [다시 설치 후 위의 작업들을 진행해야 할 수 있음] 얼마 전 다른 글에서 소개한 프로그램이 .NET Framework 4.0 을 필요로 하길래 생각나서 정리해봤습니다. 이상입니다. ^^