无法启动 Kestrel,出现“试图以访问权限禁止的方式访问套接字”

无法启动 Kestrel,出现“试图以访问权限禁止的方式访问套接字”

从 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) 的后台运行了另一个机器人。一旦我停止它,我就能成功运行示例。

相关内容