Visual studio 2013 呃。

Visual studio 2013 呃。,visual-studio-2013,iis-express,Visual Studio 2013,Iis Express,对我来说,这是一个孤立的VBCSCompiler任务,它没有关闭,而且以某种方式干扰。杀死那个任务解决了它 为了补充这一点,我为我的一台机器启用了完整的IIS功能,这似乎导致了这种情况的间歇性发生 我还收到了关于需要管理员权限来绑定站点的随机投诉。过了一段时间,我假设它正在查看完整的IIS配置(它确实需要管理员权限,因为它不是每个用户的文件) 如果您被卡住,没有其他帮助(并且您不想只选择另一个端口),请检查是否已删除此端口(如果存在)。对于我来说,“指定的端口正在使用”错误通常通过停止Inter

对我来说,这是一个孤立的VBCSCompiler任务,它没有关闭,而且以某种方式干扰。杀死那个任务解决了它


为了补充这一点,我为我的一台机器启用了完整的IIS功能,这似乎导致了这种情况的间歇性发生

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

如果您被卡住,没有其他帮助(并且您不想只选择另一个端口),请检查是否已删除此端口(如果存在)。

对于我来说,“指定的端口正在使用”错误通常通过停止Internet连接共享(ICS)(SharedAccess)来修复(实际工作正常)以及“万维网出版服务”(W3SVC)服务

项目/ISS Express启动后,可以重新启动停止的服务,而不会出现问题

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

如果Microsoft对Visual Studio/IIS Express与HyperV和“普通”IIS服务进行了一些集成测试,或者就VS/IIS Express使用的端口范围(以及避免使用的端口)提供了一些指导,那就太好了。

netstat没有显示任何已经在使用该端口的内容
netstat-ano | findstr
没有为我显示任何内容。我发现使用此命令排除了端口,以查看其他对象保留了哪些范围:

netsh接口ipv4显示excludedportrange协议=tcp

您可以尝试从多个端口的起始端口取消阻止范围(需要管理员的命令提示):

netsh int ip delete excludedportrange协议=tcp numberofport=startport=

然而,在我的情况下,我无法取消阻止范围,我只是得到了“访问被拒绝”,所以我不得不为我的站点选择另一个端口


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

FWIW,我尝试了大量的这些选项,但都没有成功。然后我意识到我在问题开始之前安装了VMWare Player。我卸载了它,这个错误消失了


我肯定有办法让它们共存,但我真的不需要玩家,所以我把它删除了。如果你尝试过各种各样的东西,而且它不工作,考虑一下你最近安装的程序(特别是那些处理网络适配器的程序),看看它是否能让你在任何地方找到。< /P> < P>我在Windows 10上运行了VisualStudio 2019的类似问题。 对其他人有效的一些解决方案似乎包括:

  • 更改应用程序端口号
  • 让Visual studio在每次应用程序启动时自动分配端口号
  • 重新启动Visual Studio
  • 重新启动计算机 不幸的是,这些解决方案对我都不起作用,分配另一个端口号确实起作用,但这不是一个可接受的解决方案,因为我的应用程序必须在指定的端口上运行

    解决方案

    首先,我运行命令:

    netsh http add iplisten ipaddress=::
    
    从提升的命令行进程。这解决了最初的错误,当尝试运行应用程序时,我不再收到“port in use”错误,而是收到一个错误,说明应用程序无法绑定到端口,因为需要管理权限。(尽管我以管理员身份运行Visual Studio)

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

    要解决第二个错误,请执行以下操作:

  • 禁用Hyper-V:控制面板->程序和功能->打开或关闭Windows功能。解开Hyper-V
  • 重新启动计算机
  • 将您正在使用的端口添加到端口排除范围:
    netsh int ipv4 Add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent
  • 可重入Hyper-V
  • 重新启动计算机

  • 从这里开始,一切都很顺利

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

    netsh http add iplisten ipaddress=::


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

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

  • 打开CMD以管理员身份运行模式
  • 然后执行命令 netsh http add iplisten ipaddress=::

  • 项目运行后


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

    • 检查CMD(admin)中的阻塞端口范围

    • 打开Visual Studio并导航到>项目>属性>Web>服务器>项目Url

    • 使用未阻塞的端口

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

    • 喝杯咖啡,分享爱。(必填项):)


      • 对我来说,唯一有效的方法是删除包含我的应用程序名、路径和绑定信息的元素 元素 应用程序主机文件。 可在C:\Users\yourUsername\Documents\IISExpress\config下找到

        关闭解决方案,删除错误的站点元素sa
        >> 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 ...
        
        (Sample port):
        http://localhost:49796/
        
         {   
              /***************************
              "Urls": "http://localhost:49438", <==== HERE
              /***************************/
              
              "Logging": {
                "LogLevel": {
                  "Default": "Information",
                  "Microsoft": "Warning",
                  "Microsoft.Hosting.Lifetime": "Information"
                }
              },
              "AllowedHosts": "*",
              "connectionStrings": { ...  }
            }