visual-studio-2013 - 为什么以及如何解决? IIS Express "The specified port is in use"

标签 visual-studio-2013 iis-express

我们知道 Visual Studio 中的 Web 应用程序被分配了一个随机端口号。它在我的办公室桌面上运行良好。但是当我将代码拉到我的笔记本电脑上(来自 VisualStudio.com)并运行 Web 应用程序时。我收到一条消息,内容是:

指定端口正在使用

端口 10360 已被另一个应用程序使用。

建议

  1. 尝试切换到 10360 以外且高于 1024 的端口。
  2. 停止正在使用端口 10360 的应用。
<小时/>

我可以使用建议#1通过将端口更改为其他端口(例如 13333)来修复它。但我很好奇端口 10360 发生了什么。如何检查哪个应用程序正在使用端口 10360?我怎样才能停止该应用程序?

最佳答案

我在 Windows 10 上运行 Visual Studio 2019 时遇到了类似的问题。 一些对其他人有效的解决方案似乎包括:

  1. 更改应用程序端口号。
  2. 让 Visual Studio 在每次应用程序启动时自动分配端口号。
  3. 重新启动 Visual Studio
  4. 重新启动计算机。

不幸的是,这些解决方案都不适合我,分配另一个端口号确实有效,但不是一个可接受的解决方案,因为我的应用程序在指定端口上运行很重要。

解决方案

首先我运行命令:

netsh http add iplisten ipaddress=::

来自提升的命令行进程。这解决了最初的错误,当尝试运行应用程序时,我不再收到“端口正在使用”错误,相反,我现在收到一条错误,指出应用程序无法绑定(bind)到端口,因为需要管理权限。 (尽管我以管理员身份运行 Visual Studio)

第二个错误是由 Hyper-V 引起的,该 Hyper-V 将端口添加到端口排除范围,我的应用程序使用的端口位于这些排除范围之一。 您可以通过运行以下命令来查看这些端口:netsh interface ipv4 show exceptedportrange protocol=tcp

要解决第二个错误:

  1. 禁用 Hyper-V:控制面板 -> 程序和功能 -> 打开或关闭 Windows 功能。取消勾选 Hyper-V
  2. 重新启动计算机。
  3. 将您正在使用的端口添加到端口排除范围:netsh int ipv4 add exceptedportrange protocol=tcp startport=50403 numberofports=1 store=persistent
  4. 重新启用 Hyper-V
  5. 重新启动计算机

从这里开始一切都很完美。

关于visual-studio-2013 - 为什么以及如何解决? IIS Express "The specified port is in use",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22572897/

相关文章:

c - 未找到源 chkstk.asm

c - Microsoft Visual Studio 2013 C 程序异常

visual-studio-2010 - Visual Studio 2013给出 "Cannot add duplicate collection entry of type ‘mimeMap’“

c# - 通用输出目录、Web 应用程序和 IIS Express

c# - Request.ServerVariables 抛出 NullReferenceException

c++ - 缺少 Visual Studio 2013/2015 C++ 项模板

visual-studio - 生产力电动工具 2013 删除垂直缩进线

visual-studio-2013 - 在 VS 2013 中暂停工作给出错误参数不能为空 : parentHierarchy

c# - VS2017调试Razor类库时"#"sign cannot be in csproj/sln pathname

visual-studio - 在 IIS Express 中创建虚拟目录