일부 Windows 사용자들이 "다른 프로세스가 파일을 사용 중이므로 프로세스에서 액세스할 수 없습니다(The process cannot access the file because it is being used by another process)"라는 오류 메시지를 접하고 있습니다. 대부분의 경우 이 문제는 netsh 명령을 실행하려고 할 때 발생합니다. 일부 사용자들은 IIS(인터넷 정보 서비스) MMC(Microsoft Management Console) 스냅인에서 웹 사이트 항목을 마우스 오른쪽 버튼으로 클릭할 때 이 오류가 나타난다고 보고하고 있습니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203389.png)
이 문제는 Windows Vista, Windows 7, Windows 8.1, Windows 10은 물론 다양한 Windows Server 버전에서도 보고된 바 있습니다.
'다른 프로세스가 사용 중입니다' 오류의 원인은 무엇일까요?
저희는 다양한 사용자 사례와 이를 해결하기 위해 시도된 복구 방법들을 분석하여 이 문제를 조사했습니다. 그 결과, 이 오류 메시지를 유발하는 몇 가지 일반적인 시나리오를 확인할 수 있었습니다.
- 명령에 관리자 권한이 필요한 경우 – 터미널에서 이 오류가 발생한다면, 대부분 수정 작업을 수행할 관리자 권한이 없기 때문입니다. 비슷한 상황에 처한 여러 사용자가 관리자 권한을 부여함으로써 문제를 해결했습니다.
- 다른 프로세스가 80번 또는 443번 포트를 사용 중인 경우 – IIS(인터넷 정보 서비스)가 실행 중인 컴퓨터에서 흔히 발생하는 상황입니다. 다른 프로세스가 이 두 포트 중 하나를 사용하고 있다면 이 오류 메시지가 표시됩니다.
- ListenOnlyList 레지스트리 하위 키가 잘못 구성된 경우 – IIS 환경에서 이 오류를 유발하는 또 다른 흔한 원인은 ListenOnlyList 레지스트리 하위 키가 올바르게 구성되지 않은 것입니다.
현재 이 오류 메시지로 어려움을 겪고 있다면, 이 글에서 검증된 문제 해결 단계를 소개해 드리겠습니다. 아래에는 비슷한 상황에 놓였던 다른 사용자들이 실제로 문제를 해결하는 데 사용한 방법들을 정리했습니다.
가장 좋은 결과를 얻으려면 아래 방법들을 순서대로 진행하면서, 본인의 상황에 맞는 해결책을 찾을 때까지 하나씩 시도해 보세요.
그럼 시작해 보겠습니다!
방법 1: 관리자 권한으로 명령 실행하기
netsh 명령을 실행하려고 할 때 이 오류가 발생한다면, 관리자 권한이 없어서 생긴 문제일 가능성이 높습니다. 특히 기본 Windows 앱이나 서드파티 애플리케이션의 동적 포트 범위에 제외 항목을 추가하는 명령을 실행할 때 이런 현상이 자주 나타나는 것으로 보고됩니다.
이런 종류의 작업에는 관리자 권한이 필요하다는 점을 기억하세요. 작업을 수행하려는 CMD 창에 관리자 권한이 있는지 확인하려면 아래 단계를 따르세요.
- Windows 키 + R을 눌러 실행 대화 상자를 엽니다. 그런 다음 "cmd"를 입력하고 Ctrl + Shift + Enter를 눌러 관리자 권한 명령 프롬프트를 엽니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203392.png)
- UAC(사용자 계정 컨트롤) 창이 나타나면 예를 클릭하여 관리자 권한을 부여합니다.
- 관리자 권한 명령 프롬프트에서 동일한 명령을 다시 실행하고, 같은 오류 메시지가 계속 나타나는지 확인합니다.
그래도 오류가 발생하거나 이 시나리오가 해당하지 않는다면, 아래의 다음 방법으로 넘어가세요.
방법 2: 다른 IP 범위 설정하기
netsh를 사용해 DNS 충돌을 해결하려는데 위 방법이 도움이 되지 않았다면, 다른 접근 방식을 시도해 볼 수 있습니다.
같은 오류 메시지로 고생하던 여러 사용자들은 제외 범위를 만드는 대신 완전히 다른 IP 범위를 설정한 후 충돌이 해결되었음을 발견했습니다.
아래는 실제로 영향을 받았던 한 사용자가 DNS와 Quickbooks 간의 충돌을 성공적으로 해결하기 위해 실행한 명령들입니다.
netsh int ipv4 set dynamicport tcp start=10000 num=1000
netsh int ipv4 set dynamicport udp start=10000 num=1000참고: 명령을 실행하는 터미널에 관리자 권한이 있는지 반드시 확인하세요.
이 방법으로 충돌이 해결되지 않거나 현재 상황에 맞지 않는다면, 마지막 방법으로 넘어가세요.
방법 3: IIS 포트 충돌 해결하기
IIS MMC 스냅인 내에서 웹 사이트 항목을 마우스 오른쪽 버튼으로 클릭할 때(시작 버튼을 클릭해도 아무 반응이 없는 경우) 이 문제가 발생한다면, Netstat.exe 유틸리티를 사용해 다른 프로세스가 80번 및 443번 포트를 사용 중인지 확인해야 합니다.
이 문제는 Microsoft IIS 6.0 및 7.0이 실행 중인 컴퓨터에서 특히 흔하게 발생합니다. Microsoft 공식 문서에 따르면, 현재 상황이 다음 조건 중 하나에 해당할 경우 이 오류 메시지가 나타납니다.
- IIS가 실행 중인 컴퓨터에서 ListenOnlyList 레지스트리 하위 키가 올바르게 구성되어 있지 않은 경우
- 다른 프로세스가 IIS에 필요한 TCP 포트(80) 또는 SSL 포트(443)를 사용 중인 경우
이 문제를 해결하려면 Netstat.exe 유틸리티를 활용하여 위에서 언급한 포트를 다른 프로세스가 사용 중인지 먼저 확인해야 합니다. 검사 결과 해당 포트가 사용되고 있지 않다면, ListenOnlyList 하위 키가 올바르게 구성되어 있는지 살펴봅니다.
전체 과정을 단계별로 안내해 드립니다.
- Windows 키 + R을 눌러 실행 대화 상자를 엽니다. "cmd"를 입력하고 Ctrl + Shift + Enter를 눌러 관리자 권한 명령 프롬프트를 엽니다. UAC(사용자 계정 컨트롤) 창이 나타나면 예를 클릭해 관리자 권한을 부여합니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203392.png)
- 관리자 권한 명령 프롬프트에서 다음 명령을 실행하여 Netstat.exe 유틸리티를 시작합니다.
netstat -ano
- 결과가 반환되면 활성 연결(Active Connections) 목록을 스크롤하며 80번과 443번 포트가 다른 프로세스에 의해 실제로 사용 중인지 확인합니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203343.jpg)
참고: 해당 포트가 다른 프로세스에 의해 사용 중이라면 문제의 원인을 찾은 것입니다. 이 경우 해당 포트의 PID를 기준으로 포트 충돌을 해결하는 구체적인 방법을 온라인에서 검색해 보세요.
- 다음 단계에서는 관리자 권한이 필요하지 않으므로 관리자 권한 명령 프롬프트를 닫습니다.
- 포트가 사용되고 있지 않다면, Windows 키 + R을 눌러 실행 대화 상자를 연 후 'regedit'을 입력하고 Enter를 눌러 레지스트리 편집기를 엽니다. UAC(사용자 계정 컨트롤) 창이 나타나면 예를 클릭해 관리자 권한을 부여합니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203489.png)
- 레지스트리 편집기에서 왼쪽 창을 이용해 다음 위치로 이동합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList
참고: ListenOnlyList 하위 키가 존재하지 않는 경우 굳이 새로 만들 필요가 없습니다. 이 경우 기본적으로 0.0.0.0 IP 주소가 사용됩니다.
- ListenOnlyList 하위 키를 수정하기 전에 IIS를 구동하는 HTTP 서비스를 먼저 중지해야 합니다. 레지스트리 편집기는 백그라운드에 두었다가 잠시 후 다시 사용합니다.
- 다음으로 Windows 키 + R을 눌러 실행 대화 상자를 열고 'cmd'를 입력한 후 Enter를 눌러 새 명령 프롬프트 창을 엽니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203490.jpg)
- 명령 프롬프트에서 다음 명령을 실행하고 Enter를 눌러 IIS를 구동하는 HTTP 서비스를 중지합니다.
net stop http
- 작업을 계속할지 묻는 메시지가 나타나면 'Y'를 입력하고 Enter를 눌러 확인합니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203461.jpg)
- HTTP 서비스가 중지되면 명령 프롬프트 창을 닫고 레지스트리 편집기로 돌아갑니다.
- ListenOnlyList 하위 키가 선택된 상태에서 오른쪽 창으로 이동해 유효한 IP 주소만 포함되어 있는지 확인합니다. 유효하지 않은 IP 주소가 발견되면 삭제하거나 유효한 IP 주소로 수정합니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203455.jpg)
참고: ListenOnlyList 하위 키가 존재하고 0.0.0.0 주소가 목록에 등록되어 있는 경우, 다른 모든 IP 주소는 삭제해야 합니다.
- 레지스트리 편집기를 닫고 컴퓨터를 재시작합니다.
- 재시작 후에는 HTTP 서비스가 자동으로 시작되어야 합니다. 확실하게 하려면 Windows 키 + R을 눌러 실행 대화 상자를 연 후 "cmd"를 입력하고 Enter를 눌러 명령 프롬프트 창을 엽니다.
![[해결 방법] 다른 프로세스가 사용 중이므로 파일에 액세스할 수 없습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114203490.jpg)
- 새로 열린 명령 프롬프트에서 다음 명령을 입력해 HTTP 서비스가 시작되었는지 확인합니다.
net start http
참고: "요청한 서비스가 이미 시작되었습니다"라는 메시지가 반환되면 정상적으로 진행된 것입니다.
- Microsoft IIS(인터넷 정보 서비스) MMC 스냅인에서 서비스 시작을 다시 시도합니다. 이제 '다른 프로세스가 사용 중이므로 프로세스에서 파일에 액세스할 수 없습니다' 오류가 더 이상 나타나지 않을 것입니다.