Kestrel을 시작할 수 없습니다. '액세스 권한에 의해 금지된 방식으로 소켓에 액세스하려는 시도가 있었습니다.'

Kestrel을 시작할 수 없습니다. '액세스 권한에 의해 금지된 방식으로 소켓에 액세스하려는 시도가 있었습니다.'

Visual Studio 2017(Windows 10)에서 Kestrel 애플리케이션을 실행하는 동안 명령 프롬프트에 다음 줄이 표시됩니다.

"바인딩할 수 없습니다.http://localhost:50067IPv4 루프백 인터페이스에서: '액세스 권한에 의해 금지된 방식으로 소켓에 액세스하려는 시도가 있었습니다.'"

그리고 그 이후에는 다음과 같이 언급됩니다.

Microsoft.AspNetCore.Server.Kestrel[0]
      Unable to start Kestrel.

참고로 스크린샷도 함께 봐주세요

포트 번호에 바인딩할 수 없습니다.

그 이유는 무엇입니까?

내가 한 일은 명령에서 포트를 확인하는 것입니다 netstat -a.

참고 - netstat -a"명령 프롬프트" 창에서 "Enter"를 누르십시오. 컴퓨터에 열려 있는 모든 TCP 및 UDP 포트 목록이 표시됩니다.

해당 목록에서도 내 포트 번호를 찾을 수 없습니다.

답변1

후에윈도우 10 업데이트 KB4074588, 일부 포트는 Windows에서 예약되어 있으므로 애플리케이션은 이러한 포트에 바인딩할 수 없습니다. 50067은 차단된 범위에 있습니다.

netsh interface ipv4 show excludedportrange protocol=tcp예약된 범위를 나열하는 데 사용할 수 있습니다 .

제외된 포트 범위 목록

답변2

나는 dotnet 코어(2.2)의 Windows 10에서 이 문제를 몇 번 겪었습니다. 제 경우에는 네트워크 카드 드라이버가 업데이트된 이후에 발생하는 경향이 있습니다(예: Dell Support Assist 앱을 통해). 이상한 부분은 3개의 dotnet 핵심 앱 중 하나만 문제가 있고 NodeJS API에는 문제가 없다는 것입니다.

제 경우에는 다시 시작하면 문제가 해결됩니다.

답변3

댓글을 추가할 수 없습니다.

내 차단 목록은 왜 다른가요? — liang 02 nov.

IIS 웹사이트에서 포트를 사용하는 경우 해당 포트가 이 목록에 표시됩니다. 다른 Windows 서비스도 마찬가지라고 생각합니다.

답변4

Microsoft에서 Bot Framework 봇 샘플을 실행하려고 할 때 이 오류가 발생했습니다.

알고 보니 포트(3978)의 백그라운드에서 다른 봇이 실행 중이었습니다. 중지한 후에는 샘플을 성공적으로 실행할 수 있었습니다.

관련 정보