我们知道 Visual Studio 中的 Web 应用程序被分配了一个随机端口号。它在我的办公室桌面上运行良好。但是当我将代码拉到我的笔记本电脑上(来自 VisualStudio.com)并运行 Web 应用程序时。我收到一条消息,内容是:
指定端口正在使用
端口 10360 已被另一个应用程序使用。
建议
- 尝试切换到 10360 以外且高于 1024 的端口。
- 停止正在使用端口 10360 的应用。
我可以使用建议#1
通过将端口更改为其他端口(例如 13333)来修复它。但我很好奇端口 10360 发生了什么。如何检查哪个应用程序正在使用端口 10360?我怎样才能停止该应用程序?
最佳答案
我在 Windows 10 上运行 Visual Studio 2019 时遇到了类似的问题。 一些对其他人有效的解决方案似乎包括:
- 更改应用程序端口号。
- 让 Visual Studio 在每次应用程序启动时自动分配端口号。
- 重新启动 Visual Studio
- 重新启动计算机。
不幸的是,这些解决方案都不适合我,分配另一个端口号确实有效,但不是一个可接受的解决方案,因为我的应用程序在指定端口上运行很重要。
解决方案
首先我运行命令:
netsh http add iplisten ipaddress=::
来自提升的命令行进程。这解决了最初的错误,当尝试运行应用程序时,我不再收到“端口正在使用”错误,相反,我现在收到一条错误,指出应用程序无法绑定(bind)到端口,因为需要管理权限。 (尽管我以管理员身份运行 Visual Studio)
第二个错误是由 Hyper-V 引起的,该 Hyper-V 将端口添加到端口排除范围,我的应用程序使用的端口位于这些排除范围之一。
您可以通过运行以下命令来查看这些端口:netsh interface ipv4 show exceptedportrange protocol=tcp
要解决第二个错误:
- 禁用 Hyper-V:控制面板 -> 程序和功能 -> 打开或关闭 Windows 功能。取消勾选 Hyper-V
- 重新启动计算机。
- 将您正在使用的端口添加到端口排除范围:
netsh int ipv4 add exceptedportrange protocol=tcp startport=50403 numberofports=1 store=persistent
- 重新启用 Hyper-V
- 重新启动计算机
从这里开始一切都很完美。
关于visual-studio-2013 - 为什么以及如何解决? IIS Express "The specified port is in use",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22572897/