为什么以及如何修复? IIS Express"指定的端口正在使用"

时间:2014-03-22 03:00:01

标签: visual-studio-2013 iis-express

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

指定的端口正在使用

端口10360已被其他应用程序使用。

推荐

  1. 尝试切换到10360以外的端口以及1024以上的端口。
  2. 停止使用端口10360的应用程序。

  3. 我可以使用Recommendation #1通过将端口更改为其他类似13333来修复它。但我很好奇端口10360发生了什么。如何查看使用端口10360的应用程序?我该如何停止该申请?

34 个答案:

答案 0 :(得分:40)

我用这种方式解决问题......

档案 - > 打开 - > 网站...... enter image description here

之后,选择 IIS Express网站下的本地IIS 删除不需要的项目。

希望这有帮助。

答案 1 :(得分:31)

  1. 在解决方案中更改它(右键单击) - > 属性 - > 网络标签
  2. 点击创建虚拟目录(在项目Url文本框前面)
  3. IIS Express port change for fixing port in use

答案 2 :(得分:25)

我遇到了同样的问题,但netstat和resmon都没有出现过程。

解决问题的关键是关闭所有打开的浏览器窗口。

答案 3 :(得分:14)

您正在寻找netstat

打开管理命令shell并运行

netstat -aob

查找端口10360.它将向您显示可执行文件打开端口以及在任务管理器中查找的PID。 (实际上,首先在一个没有特权的shell中运行netstat -?,因为我不赞成盲目地运行你不理解的任何东西,特别是在特权环境中。)

这里是交换机的作用:

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

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

-b显示打开连接或端口所涉及的二进制文件。这是需要提升访问权限的那个。

答案 4 :(得分:12)

这让我困扰了一年多!

对我来说,

  • 没有网站在运行iin IIS Express
  • 在命令行运行:netstat -ano确定没有使用该端口。

解决方案是运行

netsh http add iplisten ipaddress=::

从命令行

快乐的日子,归功于:詹姆斯布莱恩特! https://developercommunity.visualstudio.com/content/problem/110767/specified-port-is-in-use.html

答案 5 :(得分:12)

  1. 关闭VS.
    1. 重新开始 - 右键单击​​并以管理员身份运行
    2. 再次运行您的项目。

答案 6 :(得分:10)

对我有用的简单解决方案:(积分其他答案的积分)

**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 ...
    
  • 打开Visual Studio并导航到>“项目”>“属性”>“ Web”>“服务器”>“项目网址”

  • 使用未阻塞的端口。

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

  • 喝咖啡和分享爱。 (必需):)

答案 7 :(得分:7)

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

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

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

解决方案

首先我运行命令:

netsh http add iplisten ipaddress=::

来自提升的命令行过程。这解决了最初的错误,当尝试运行应用程序时,我不再遇到“使用中的端口”错误,而是出现了一个错误,指出该应用程序无法绑定到该端口,因为需要管理特权。 (尽管我以管理员身份运行Visual Studio)

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

要解决第二个错误:

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

从这里开始,一切正常。

答案 8 :(得分:4)

  1. 删除.sln文件(如果有)。
  2. 打开文件C:\ Users \ NN \ Documents \ IISExpress \ config \ applicationhost.config
  3. 在configuration / system.applicationHost / sites中找到有问题的网站,然后删除整个网站部分。
  4. "打开网站.."从Visual Studio和项目中将获得一个随机的新端口。

答案 9 :(得分:4)

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

对我来说,我的端口没有出现在netstat中。我尝试关闭谷歌Chrome浏览器窗口@Clangon和@ J.T。泰勒建议,但无济于事。

最后,系统重启工作,但是,我只能假设其他东西正在秘密地保持端口打开。或者它可能只花了比我准备等待Chrome关闭后释放端口的时间更长的时间。

答案 10 :(得分:4)

以管理模式运行visual studio解决了我的问题

答案 11 :(得分:2)

对我来说,Google Chrome浏览器是使用该端口的过程。即使在我关闭Chrome后,我发现该过程仍然存在(我允许Chrome在"在后台运行"以便我可以接收桌面通知)。我进入任务管理器,杀死了Chrome浏览器进程,然后启动了我的Web应用程序,它就像一个魅力。

答案 12 :(得分:2)

当端口xxxx已被使用时,总是会出现一个PID(过程ID),其中包含错误。只需转到运行应用程序的计算机上的任务管理器,单击详细信息,您将确定其他应用程序是什么。然后,您可以决定是否要结束该过程

答案 13 :(得分:2)

Visual Studio 2015

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

我希望这会有所帮助。

答案 14 :(得分:2)

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

当窗口启动时,首先打开Visual Studio,然后打开浏览器并单击运行(F5)。

现在它有效。我不知道为什么。

答案 15 :(得分:1)

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

右键单击我的解决方案中的WebService项目>属性>网络>在“服务器”下,从IIS Express更改为本地IIS(它将自动创建您想要的虚拟目录)

答案 16 :(得分:1)

错误消息应告诉您哪个应用程序已在使用该端口 - 在我的情况下它是explorer.exe,因此只是从任务管理器重新启动资源管理器的情况。

答案 17 :(得分:1)

点击任务栏底部的通知,如果收到正在使用的端口错误,请选择右键单击iiss图标,然后单击退出,对我来说就像魅力一样

答案 18 :(得分:1)

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

Task Manager Process Details

答案 19 :(得分:1)

使用记事本++等打开您的csproj,然后向下滚动到DevelopmentServerPort。只要将其更改为1024以上(如建议值)(例如22312),就可以将其更改为其他内容。还将IISUrl更改为http://localhost:22312/。保存更改并重新启动项目。

答案 20 :(得分:1)

就我而言,没有使用指定端口的应用程序,Visual Studio的提升运行也无济于事。

对我有用的是重新安装IIS Express,然后重新启动计算机。

答案 21 :(得分:1)

对我来说,netstat诀窍告诉我,我有Fiddler正在运行,这使得端口保持打开状态。

答案 22 :(得分:1)

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

netsh http add iplisten ipaddress = ::

答案 23 :(得分:0)

同样的错误出现在我的 Visual Studio 2021 中。安装 Docker 后,Kubernetes.WDS 占用了每个端口。

简单的两步解决方案:

  1. 禁用 Hyper-V:控制面板 -> 程序和功能 -> 打开或关闭 Windows 功能。取消勾选 Hyper-V
  2. 重新启动计算机。

答案 24 :(得分:0)

做这些就行了,

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

答案 25 :(得分:0)

就我而言,我的ASP Core 3.1项目也出现了此问题。 我觉得出于某种原因,Visual Studio会忽略项目属性中的IP /端口设置,并在5000和5001上启动它。我在尝试使用 dotnet run << / p>

这篇文章对我有帮助 How to specify the port an ASP.NET Core application is hosted on?

建议

  • 在appsettings.json或appsettings.development.json中指定端口。 (见下)
  • 关闭Visual Studio
  • 删除/.vs、/bin、/obj文件夹
  • 重新启动Visual Studio。

appsettings.json / appsettings.development.json内容

 {   
      /***************************
      "Urls": "http://localhost:49438", <==== HERE
      /***************************/
      
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      "connectionStrings": { ...  }
    } 

答案 26 :(得分:0)

对我来说,唯一起作用的是删除包含我的应用程序名称,路径和绑定信息的元素, 元素 applicationhost文件。 在C:\ Users \ yourUsername \ Documents \ IISExpress \ config

下可以找到

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

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

答案 27 :(得分:0)

要解决此问题,请执行以下步骤:

  1. 打开以管理员模式运行的CMD
  2. 然后执行命令 netsh http add iplisten ipaddress = ::

  3. 运行项目后

答案 28 :(得分:0)

在Visual Studio 2017中,选择``项目/属性'',然后选择``Web''选项。在默认项目URL旁边的IIS部分中,单击“创建虚拟目录”。这为我解决了问题。我认为在我的情况下,默认项目虚拟目录已在调试会话后以某种方式损坏。

答案 29 :(得分:0)

FWIW,我尝试了很多这样的选择,但是我一无所获。然后我意识到在问题开始之前,我已经安装了VMWare Player。我将其卸载,此错误消失了。

我确定有某种方法可以使它们共存,但是我并不是真的需要Player,所以我将其删除。如果您尝试了各种方法,但都无法正常工作,请考虑浏览一下您最近安装的任何程序(尤其是那些与网络适配器相关的程序?),然后看能否将您带到任何地方。

答案 30 :(得分:0)

对我来说,netstat并未显示任何已在使用我选择的端口的东西。

唯一可行的方法是删除解决方案文件夹中的.vs文件夹。

答案 31 :(得分:0)

对于我来说,“确定的端口正在使用”错误通常是通过停止“ Internet连接共享( ICS )”来解决的(实际上工作良好) SharedAccess)和“万维网发布服务”( W3SVC )服务。

启动项目/ ISS Express后,可以再次启动已停止的服务,而不会出现问题。

每当我收到错误消息端口(50000范围内)绝对未使用(已通过netstat和tcpview检查)。

如果Microsoft与HyperV和“正常” IIS Service一起对Visual Studio / IIS Express进行了一些集成测试,或者对VS / IIS Express所使用的端口范围(以及要使用的端口)给出了一些指导,那就太好了。避免)。

答案 32 :(得分:0)

仅此而已,我就为我的一台计算机打开了完整的IIS功能,这似乎导致它间歇性地发生。

过一会儿,我还抱怨需要管理员权限来绑定站点,我以某种方式认为它正在查看完整的IIS配置(由于它不是按用户文件,因此确实需要管理)。

如果您被卡住而没有其他帮助(并且您不想仅选择其他端口),请检查是否已删除该端口。

答案 33 :(得分:0)

对我来说,这是上次运行中的孤立的 VBCSCompiler 任务,没有关闭,并且以某种方式干扰。杀死那个任务就解决了。

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