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)의 백그라운드에서 다른 봇이 실행 중이었습니다. 중지한 후에는 샘플을 성공적으로 실행할 수 있었습니다.