从 Visual Studio 2017(Windows 10)运行我的 Kestrel 应用程序时,我在命令提示符中收到以下行:
“无法绑定到http://本地主机:50067在 IPv4 环回接口上:“试图以访问权限禁止的方式访问套接字”。
之后提到
Microsoft.AspNetCore.Server.Kestrel[0]
Unable to start Kestrel.
供您参考,请同时查看屏幕截图
这背后的原因是什么?
我所做的是,从命令中检查端口netstat -a
。
注意 -netstat -a
在“命令提示符”窗口中,按“Enter”。计算机将显示所有打开的 TCP 和 UDP 端口的列表
我也无法在该列表中找到我的端口号。
答案1
后Windows 10 更新 KB4074588,某些端口被Windows保留,应用程序无法绑定到这些端口。50067处于阻止范围内。
您可以使用netsh interface ipv4 show excludedportrange protocol=tcp
它来列出保留的范围。
答案2
我在 Windows 10 上使用 dotnet core (2.2) 时遇到过几次这种情况。就我而言,这往往发生在我的网卡驱动程序更新后(例如,通过 Dell Support Assist 应用程序)。奇怪的是,3 个 dotnet core 应用程序中只有一个有问题,而我的 NodeJS API 没有任何问题。
就我的情况而言,重新启动即可解决问题。
答案3
我无法添加评论,
为什么我的阻止列表不同? – liang 2020 年 11 月 2 日 9:39
如果 IIS 网站使用某个端口,则会显示在此列表中。我猜其他 Windows 服务也是如此。
答案4
当我尝试运行 Microsoft 的 Bot Framework 机器人示例时遇到了此错误。
事实证明,我刚刚在端口 (3978) 的后台运行了另一个机器人。一旦我停止它,我就能成功运行示例。