Why and how to fix? IIS Express "The specified port is in use"

We know a random port number is assigned to a web application in Visual Studio. It works fine in my office desktop. But when I pull the code onto my laptop (from VisualStudio.com) and run the web app. I got a message, saying,

The specified port is in use

Port 10360 is already being used by another application.

Recommendations

  1. Try switching to port other than 10360 and higher than 1024.
  2. Stop the application that is using port 10360.

I can fix it using Recommendation #1 by changing the port into something else like 13333. But I am very curious what happened to port 10360. How can I check what application is using port 10360? How can I stop that application?

168161 次浏览

你在找 netstat

打开管理命令 shell 并运行

netstat -aob

找到端口10360。它将显示哪个可执行文件打开了端口,以及在 TaskManager 中查找哪个 PID。(实际上,首先在非特权 shell 中运行 netstat -?,因为我不赞成盲目地运行您不理解的任何内容,特别是在特权上下文中。)

这就是开关的作用:

-a显示所有连接或打开的端口,而不仅仅是活动的端口——您想要的端口可能正在监听,而不是活动的端口。

-o显示了连接或端口的所有 PID,因此您可以在 Task Manager 的 Process 选项卡中找到该进程。(可能需要在任务管理器中添加 PID 列。视图-> 选择栏)

-b显示了打开连接或端口所涉及的二进制文件。这是一个需要提高访问级别的文件。

我用这种方法解决问题。

文件 -> 张嘴-> < strong > 网站..。 enter image description here

After that select Local IIS under IIS Express Site 删除不需要的项目。

希望这个能帮上忙。

我也有同样的问题,但是 netstat 和 resmon 中都没有出现任何进程。

对我来说,解决问题的办法是关闭所有打开的浏览器窗口。

对我来说,Google Chrome 浏览器就是使用这个端口的过程。即使在我关闭了 Chrome 之后,我发现这个过程仍然存在(我允许 Chrome“在后台运行”,这样我就可以接收桌面通知)。我进入任务管理器,关闭了 Chrome 浏览器进程,然后启动了我的网络应用程序,它工作得非常好。

  1. 在解决方案中更改(右击)-> 财产-> 选项卡
  2. 单击 创建虚拟目录(在项目 Url 文本框前面)

IIS Express port change for fixing port in use

  1. 删除.sln 文件,如果有的话。
  2. 打开文件 C: Users NN Document IISExpress config applicationhost.config
  3. 在 configuration/system.applicationHost/site 中查找有问题的站点并删除整个站点部分。
  4. "Open Web Site.." from Visual Studio and the project will be given a random new port.

如果 netstat 不显示任何内容,请尝试重新启动。

对我来说,我的端口在 netstat 中没有显示任何内容。我试着关闭谷歌浏览器的窗口:@Clangon 和@J。泰勒建议,但没有用。

然而,最后系统重启起作用了,所以我只能假设有其他东西在秘密地保持端口打开。或者也许只是因为 Chrome 关闭后,我等待端口发布的时间比我预期的要长。

  1. 关闭 VS
    1. 重新开始-右击并作为管理员运行
    2. 再次运行您的项目。

对于我来说,关闭所有应用程序并重新启动计算机。

当窗口启动时,首先打开 VisualStudio,然后打开浏览器并单击 run (F5)。

现在成功了,我不知道为什么。

Visual studio 2015

  • 关闭在 VisualStudio 中打开的所有文件。
  • 然后关闭应用程序并退出 VisualStudio。
  • 打开 VisualStudio,它应该能够成功运行。

希望这个能帮上忙。

点击任务栏底部的通知,如果你接收到类似端口使用中的错误,然后选择 iiss 图标右键点击然后点击退出,它的工作原理就像我的魅力

我也犯了同样的错误。我在 IIS 中将 Web 服务设置为一个应用程序,并通过以下方式修复了它:

右键单击我的解决方案中的 WebService 项目 > 属性 > Web > 在“ Servers”下从 IIS Express 更改为 Local IIS (它将自动创建您想要的虚拟目录)

当已经使用了 xxxx 端口时,总是有一个 PID (ProcessId) ,其中详细说明了该错误。只需到正在运行应用程序的机器上的任务管理器,单击详细信息,就可以确定另一个应用程序是什么。然后您可以决定是否要结束该过程

Running visual studio in administrative mode solved my issue

打开任务管理器,关闭“ IIS 快捷系统托盘”和“ IIS 快捷工作进程”的所有进程,然后重新运行项目

Task Manager Process Details

这件事困扰了我一年多!

对我来说,

  • 在 IIS Express 中没有运行任何网站
  • 在命令行上运行: netstat -ano所确定的端口没有使用任何东西。

解决办法就是逃跑

netsh http add iplisten ipaddress=::

从命令行。

Happy days, and credit to: James Bryant! https://developercommunity.visualstudio.com/content/problem/110767/specified-port-is-in-use.html

用例如 Notepad + + 打开 csproj 并向下滚动到 DevelopmentServerPort。只要它在推荐的1024以上(例如22312) ,就可以将它改为其他值。还要将 IISUrl 更改为 http://localhost:22312/。保存更改并重新启动项目。

在我的例子中,没有使用指定端口的应用程序,并且提高 VisualStudio 的运行也没有帮助。

我的工作是重新安装 IISExpress,然后重新启动计算机。

对我来说,这是一个孤立的 编译器任务从以前的运行,这没有关闭,并以某种方式干扰。杀了那个任务就解决了。

Https://developercommunity.visualstudio.com/content/problem/31482/vbcscompiler-does-not-shut-down.html

除此之外,我还为我的一台机器打开了完整的 IIS 特性,这似乎会间歇性地导致这种情况发生。

我还收到随机的投诉,说需要管理员权限绑定站点一段时间后,我假设它是在查看完整的 IIS 配置(这确实需要管理员,因为它不是一个每个用户的文件)。

If you are stuck and nothing else is helping (and you don't want to just choose another port) then check you have removed this if it is present.

对我来说,“指定的端口正在使用”错误通常是由 停下来、“ Internet 连接共享(ICS)”(SharedAccess)和“万维网发布服务(World Wide Web Publishing Service)”(W3SVC)服务修复的(实际上已经很好地解决了)。

在项目/ISS Express 启动之后,停止的服务可以毫无问题地再次启动。

每当我收到错误 端口(在50000范围内)肯定不在使用中(使用 netstat & tcpview 检查)。

It would be nice if Microsoft did some integration testing of Visual Studio / IIS Express along side with HyperV and the "normal" IIS Service OR gave some guidance on which port ranges to use for VS / IIS Express (and which ports to avoid).

Netstat 没有显示已经使用该端口的任何内容

netstat -ano | findstr <your port number>没有显示任何东西。我发现端口被排除在外,使用这个命令来查看哪些范围被其他东西保留:

netsh interface ipv4 show excludedportrange protocol=tcp

您可以尝试从启动端口为多个端口解除阻塞范围(需要与管理员一起使用命令提示符) :

netsh int ip delete excludedportrange protocol=tcp numberofports=<number of ports> startport=<start port>

然而,在我的情况下,我不能解除阻塞的范围,我只是得到“访问被拒绝”,所以我不得不为我的网站选择另一个端口。

我最初的解决方案是: 唯一有效的方法是删除。Vs 解决方案文件夹中的文件夹。(我发现你可以直接删除。而不是/config/applicationhost.config,以避免丢失这么多设置)。

FWIW,我尝试了很多这样的选择,但是没有任何进展。然后我意识到我已经安装了 VMWare 播放器就在问题开始之前。我卸载了它,这个错误消失了。

我相信有一些方法可以让它们共存,但我并不真的需要播放器,所以我只是删除了它。如果您已经尝试了所有的东西,但是它不工作,请考虑查看您最近安装的任何程序(特别是那些处理网络适配器的程序?)看看能不能帮到你。

我在 Windows10上运行 VisualStudio2019时遇到过类似的问题。 对其他人有效的一些解决办法似乎包括:

  1. 更改应用程序端口号。
  2. 让 VisualStudio 在每次应用程序启动时自动分配一个端口号。
  3. 重新启动 VisualStudio
  4. 重启电脑。

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

解决方案

首先我运行命令:

netsh http add iplisten ipaddress=::

从升级的命令行进程。这解决了最初的错误,当尝试运行应用程序时,我不再得到“使用中的端口”错误,相反,我现在得到一个错误,说明应用程序无法绑定到端口,因为需要管理特权。(尽管我以管理员身份运行 VisualStudio)

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

为了解决第二个错误:

  1. Disable Hyper-V: Control Panel-> Programs and Features-> Turn Windows features on or off. Untick Hyper-V
  2. 重启电脑。
  3. Add the port you are using to the port exclusion range: netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent
  4. 重启 Hyper-V
  5. 重启电脑

在这里一切都很完美。

您需要在管理命令提示符下运行以下命令来配置此参数:

Http://www.netsh/http://add/iplisten/ipaddress = :

在 VisualStudio2017中,选择 Project/Properties,然后选择 Web 选项。在 IIS 部分的默认项目 URL 旁边,单击“创建虚拟目录”。这为我解决了问题。我认为在我的案例中,默认项目 VirtualDirectory 在调试会话之后以某种方式损坏了。

要解决这个问题,请遵循以下步骤:

  1. 在管理员模式下打开 CMD 提示符

  2. 然后执行命令: netsh http add iplisten ipaddress=::

  3. 之后,运行该项目

对我有效的简单解决方案: (他人答案的组合)

**My System Info:**
Windows 10 build : 1809
IIS Version      : 10.0.17763.1
Hyper-V          : Enabled
Docker           : Installed - 2.3.0.2 (45183)
  • 检查 CMD (管理)中的阻塞端口范围

    >> netsh interface ipv4 show excludedportrange protocol=tcp
    
    
    (Sample output):
    Protocol tcp Port Exclusion Ranges
    Start Port    End Port
    ----------    --------
    49696       49795         (SEE HERE, 49796 to 49895 is not blocked)
    49896       49995
    ... list goes on ...
    
  • 打开 VisualStudio 并导航到 > Project > Properties > Web > Servers > ProjectUrl

  • 使用未被阻塞的端口。

    (Sample port):
    http://localhost:49796/
    
  • 重新启动 VisualStudio (如果需要)

  • 喝杯咖啡,分享爱情。(要求)

对我来说,唯一的工作是删除元素包含我的应用程序名称,路径和绑定信息下 中的 元素 applicationhost file. 在 C: UsernameDocumentIISExpress 配置下找到

关闭解决方案,删除不良站点元素,保存应用主机文件并关闭。 使用管理权限从 Visual Studio 重新打开应用程序/网站-重建和运行。瞧... 一个新的端口自动分配给您的应用程序,解决了这个问题。

也可以在不运行的情况下进行验证——请检查“属性”窗口中的解决方案,URL 将具有新的端口号。

In my case I got also this issue from my ASP Core 3.1 projets. 出于某种原因,我认为可视化工作室忽略项目属性中的 IP/Port 设置,并从5000和5001开始。我是在尝试使用 < strong > dotnet run 从命令行启动 Core 3.1项目时发现这一点的

这个帖子帮助了我 如何指定 ASP.NET Core 应用程序所驻留的端口?

看来是的

  • 在 appsetings.json 或 appsetings.development.json 中指定端口
  • 关闭 VisualStudio
  • Delete /.vs, /bin, /obj folders
  • 重新启动 VisualStudio。

Appsetings.json/appsetings.development.json 内容

 {
/***************************
"Urls": "http://localhost:49438", <==== HERE
/***************************/
      

"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"connectionStrings": { ...  }
}

只要做这些,

  1. 停止正在运行的项目
  2. 关闭浏览器
  3. 运行这个项目

The same error was appearing in my Visual Studio 2021. After installing Docker every port was engaged by Kubernetes.WDS.

简单的两步解决方案:

  1. 禁用 Hyper-V: 控制面板-> 程序和特性-> 打开或关闭 Windows 功能。取消勾选 超 V
  2. 重启电脑。

在我自己的案例中,这个问题的原因有点不同。一切都很好,直到我开始码头做一些其他的事情。Startdocker 以这样或那样的方式向端口排除范围添加了一些新的端口范围。怎么办:

  1. 打开命令提示符(作为管理员)
  2. run: netsh interface ipv4 show excludedportrange protocol=tcp (You should see the port your application is using in the excluded port ranges)
  3. 运行: 净停止赢得
  4. Run: netsh 接口 ipv4显示 excludedporange protocol = tcp (此时,管理端口排除范围应该减小)
  5. run net start winnat.

如果问题是由 WindowsNAT 驱动程序(winnat)引起的,那么现在应该没问题了。