SocketException 액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다 오류

ASP.Net Core로 몇달전 완료된 프로젝트에 기능을 보완할 일이 생겨서 오랜만에 프로젝트를 다시 열었습니다.
프로젝트를 열고 실행을 하니 app.Run();에서 "SocketException - 액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다."라고 오류가 나면서 실행이 되지 않습니다. 컴퓨터를 재부팅해도 동일한 오류가 발생합니다. 분명히 전에는 정상적으로 동작하던 프로젝트였는데요.
검색해보니 사용하려는 포트(7882 포트)를 다른 프로세스가 사용해서 나오는 오류라고 해서 컴퓨터에서 사용중인 프로세스를 전부 뒤져봤는데 해당 포트를 사용하는 프로세스는 없었습니다.
또다시 폭풍 검색을 해보니 윈도우가 특정포트를 사용할 수 없게 제한하는 경우가 있다고 해서,

netsh interface ipv4 show excludedportrange protocol=tcp

이 명령으로 확인해보니 정말로 내가 사용하려는 포트가 제한된 목록에 있었습니다.
다행히 제한 목록에서 내가 사용하려는 포트를 삭제하니 프로젝트가 정상적으로 실행되었습니다.

윈도우가 특정 포트를 제한할 수 있다는걸 처음 알았습니다.
윈도우가 특정 포트를 제한하는 이유와 어떤 조건에서 포트를 제한하는지 아시는분들의 답변 부탁드립니다.

3 Likes

다음의 글로 정리해 봤으니 참고하세요.

닷넷: 2158. C# - 소켓 포트를 미리 시스템에 등록/예약해 사용하는 방법(Port Exclusion Ranges) (sysnet.pe.kr)

13 Likes

상세한 설명 감사드립니다.
많은 도움이 되었습니다.

2 Likes

여기서 활동도 하시는군요;; 누구신가 했더니…
닷넷데브 자주 들르시나요?

2 Likes

조금 전 윈도우 업데이트후 razor pages 프로젝트를 실행하니 똑같은 에러가 발생했습니다.

다행히 닷넷데브에 설명이 잘되어 있어서 쉽게 해결 하였습니다.

기존에 5001포트를 사용했는데 예약된 포트로 확인되네요.

그냥 포트번호를 변경해서 마음 편히 사용중입니다.

C:\Users\Test>netsh interface ipv4 show excludedportrange protocol=tcp

프로토콜 tcp 포트 제외 범위

시작 포트 끝 포트


  4640        4739
  4840        4939
  4940        5039
  5131        5230
  5818        5917
  5918        6017
 50000       50059     *
    • 관리 포트 제외입니다.
1 Like

한번씩 도술 뿅 하고 부려주시고 가시는 신선 느낌 나시는 분…
(저도 @kevin13 님 언제나 덕 많이 받아서 매번 감사드립니다 허허)