尝试连接到本地主机 运行 IISExpress 时如何解决 ERR_CONNECTION_REFUSED - 错误 502(无法从 Visual Studio 进行调试)?

How to solve ERR_CONNECTION_REFUSED when trying to connect to localhost running IISExpress - Error 502 (Cannot debug from Visual Studio)?

这是 运行,在 Windows Server 2008 上,几个月前使用过。我刚刚再次使用此服务器进行一些 VS 开发工作。

这是实时网络服务器,也用于提供一些测试站点。

在 运行 Visual Studio 启动我的项目进行调试时出现此问题。

在启动 IISExpress 时尝试通过 localhost:xxxx 启动任何站点(使用配置中的实际端口号来访问不同的站点):

This webpage is not available

ERR_CONNECTION_REFUSED

我已经在这几天了,因为我读到其他人也有类似的问题,试过 most things I have read including changing the managedruntimeversion from "v4.0" to "v4.0.30319" for .net 4.5 (I have never had to do this before) and disabling the logging module (all suggestions found here)。

我的 hosts 文件中只有两个条目指向内部服务器 IP 地址。没有 localhost 相关 IP 或引用。

我已经重新安装了 IIS Express 和 Visual Studio 2013。我还创建了一个全新的 WebApplication 站点来尝试解决这个问题(简单且没有其他复杂的绑定) .

当我启动 Fiddler 时,我在页面上看到以下内容:

[Fiddler] The socket connection to localhost failed. 
ErrorCode: 10061. 
No connection could be made because the target machine actively refused it 127.0.0.1:23162

我已经从 IE 的 LAN 连接部分删除了所有代理设置,之前我在 VS 中得到一个 red-x 弹出窗口,表明 IISExpress 无法发射.

这不是 SSL 与非 SSL 的问题。

我安装了 TFS 服务器 - 卸载了它以防有一些奇怪的绑定干扰。

我尝试多次删除 IISExpress config/settings 文件夹。

当前 applicationhost.config 包含:

<site name="WebApplication1" id="4">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="C:\TFS-WorkRepository\Sandbox\WebApplication1\WebApplication1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:23162:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
            </siteDefaults>
            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />

我希望 really-stuck 有一个标签。

请提出建议,因为我不想启动新服务器。

--更新--

在 URL 栏中,当我输入计算机名称或 IP 地址 :xxxx 时,我得到 ERR_CONNECTION_TIMED_OUT 而不是 ERR_CONNECTION_REFUSED

尝试更改项目中的端口号?

项目属性 → Web → 服务器 → 项目 Url:

修改端口号后不要忘记点击Create Virtual Directory,或回复"Yes"提示创建虚拟目录! (感谢

注意:我有点不愿意 post 这个作为答案,因为我不知道是什么 问题是什么原因造成的,但我遇到了类似的问题,更改端口号对我有用。我只是 post 根据评论中的建议,这也适用于其他人。

在我的例子中,似乎有什么东西与我使用的特定端口号发生冲突,所以我换了一个,我的网站又弹出来了!我不确定这对旧端口号意味着什么,或者我是否能够再次使用它。也许比我更有见识的人可以插话一下。

我刚刚为我的机器修复了这个问题。 也许它对某些人有用。也许不适合其他人,但这对我有用。

在 IIS 中,我必须将 https 绑定添加到默认网站(或者,我想,你是 运行 应用所在的网站)。

现在我的本地主机在从 Visual Studio 进行调试时可以正常工作了。

在我的情况下,这是由于在没有管理员权限的情况下启动 IIS 造成的。当我以管理员身份启动 IIS 并启动网站时,它工作正常

在我的例子中,它是由无限 loop/stack 溢出引起的。

谢谢大家的回答。我尝试了所有这些,但 none 对我有用。起作用的是从 .vs 文件夹中删除 applicationhost.config(在 project/solution 的文件夹中找到)并创建一个新的虚拟目录(项目属性 > Web > 创建虚拟目录)。希望这会帮助别人。

Sam 的解决方案对我有用,但我不想 运行 作为管理员作为永久解决方案。

我是这样解决的:

  1. 运行 以管理员身份运行 CMD
  2. 键入“netsh http show urlacl”并找到具有相关端口
  3. 的保留url
  4. 键入“netsh http delete urlacl url=YourReservedUrlHere”

然后我可以 运行 我的应用程序而不需要管理员权限。但它确实扰乱了从外部计算机浏览到我的应用程序的能力。现在对我来说足够接近了。

全部重建对我有用。 VS2013,IIS Express。

我用 Run as administrator 启动 Visual Studio 解决了这个问题。如果要将项目发布到本地 IIS,这也是必需的。

永久设置:-

  1. 右键单击 Visual Studio 图标
  2. Select Properties
  3. 点击Advanced
  4. 确保 Run as administrator 已勾选
  5. 一直点击 OK
  6. 开始Visual Studio,加载您的项目并开始调试

这个问题可能是因为您最近在应用程序配置中使用了 IP 地址绑定。

解决问题的步骤:

  • 运行 管理员访问命令终端中的命令

netsh http show iplisten

如果您看到类似下面的内容,那么此解决方案可能对您没有帮助。

IP addresses present in the IP listen to list:

0.0.0.0

如果您看到与 0.0.0.0 不同的内容,请尝试以下步骤来解决此问题。

  • 运行 按照 shell 命令的顺序使用提升的命令终端

netsh http delete iplisten ipaddress=11.22.33.44

netsh http add iplisten ipaddress=0.0.0.0

iisreset

  • (这里11.22.33.44是实际需要去掉的IP)

现在您的 issexpress 已设置为侦听任何发送到本地主机绑定的 ping。

在启用 SSL 并在浏览器中使用地址后,我通过转到项目属性 -> 调试解决了问题

就我而言,我的同事更改了解决方案名称,以便在我获得最新版本的项目后,我 运行 使用 IIS EXPRESS 的 Web 应用程序,然后我收到消息 ERR_CONNECTION_REFUSED 在我的 google chrome.

在我尝试了在互联网上找到的所有解决方案后,我终于通过以下步骤解决了问题:

  1. 关闭VS
  2. 删除项目文件夹中的.vs文件夹

  3. 运行 作为管理员 VS

  4. 打开调试 > [您的应用程序] 属性 > Web

  5. 更改项目 URL 中的端口并且不要忘记使用 https 因为就我而言,当我使用 http 时它仍然不起作用。

  6. 点击Create virtual directory

  7. 运行 再次使用 IIS EXPRESS 应用程序。

  8. Web 应用程序 运行 成功。

希望这些对您有所帮助。

确保您也指定了起始页。右键单击要用作起始页的 .aspx 页面,然后选择 "Set as start page"

一个简单的解决方法(对我有用)是使用 IP 地址而不是本地主机。这应该适合您的开发任务。

我遇到了同样的问题。我尝试了这些步骤:

  1. 关闭 Visual Studio 2017
  2. 删除了 [solutionPath].vs\config\applicationhost.config
  3. 重新打开解决方案并单击[创建虚拟目录]
  4. 尝试 运行 => ERR_CONNECTION_REFUSED
  5. 失败

再试一次:

  1. 关闭 Visual Studio 2017
  2. 删除了 [solutionPath].vs\config\applicationhost.config
  3. 删除了 .\Documents\IISExpress\config\applicationhost.config
  4. 重新打开解决方案并单击[创建虚拟目录]
  5. 尝试 运行 => ERR_CONNECTION_REFUSED
  6. 失败

再试一次:

  1. 关闭 Visual Studio 2017
  2. 删除了 [solutionPath].vs\config\applicationhost.config
  3. 删除了 .\Documents\IISExpress\config\applicationhost.config
  4. 已将 127.0.0.1 本地主机添加到 C:\Windows\System32\drivers\etc\hosts
  5. 重新打开解决方案并单击[创建虚拟目录]
  6. 尝试 运行 => ERR_CONNECTION_REFUSED
  7. 失败

它的作用:

  1. 关闭 Visual Studio 2017
  2. 删除 [solutionPath].vs\config\applicationhost.config
  3. 开始 "Manage computer certificates" 和 在个人-> 证书中找到证书 "localhost"
  4. 删除该证书(风险自负)
  5. 开始控制Panel\All控制面板Items\Programs和功能
  6. 找到 "IIS 10.0 Express"(或您自己的 IIS Express 版本)
  7. 点击"Repair"
  8. 重新打开解决方案并单击[创建虚拟目录]
  9. 启动网络项目。
  10. 你会得到这个问题:。单击 "Yes"
  11. 你会得到这个问题:。单击 "Yes"
  12. 现在可以了。

我在 Chrome 上尝试了很多方法,但唯一对我有用的是 "Clear browsing data"

必须执行 "advanced" 版本,因为标准不起作用。我怀疑是 "Content Settings" 干的。

我最近在从另一台机器复制源代码时遇到了这个问题。

-> 删除 .vs 文件夹(它是隐藏文件夹,因此请确保您已启用查看隐藏文件夹选项)
-> 打开 visual studio 并构建您的项目。 Visual studio 将根据当前系统配置创建新的 .vs 文件夹

虽然可能与您的问题无关,但我今天遇到了同样的问题。事实证明,我启用了一个 URL 重写模块来强制我的站点使用 HTTPS 而不是 HTTP,并且在我的生产环境中,这工作得很好。但是在我的开发系统上,它在我的默认站点中作为应用程序运行,它失败了...
事实证明,我的默认站点没有绑定 HTTPS,因此重写模块会将我从 HTTP 发送到 HTTPS,但没有任何东西在监听 HTTPS 端口...
您可能出于类似原因遇到此问题。如果您尝试访问的网站没有正确的绑定,似乎会出现此错误...

这可能与有此问题的特定子集相关...也许是不同的风格。

我在 RELEASE 上强制执行 https 重定向。

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
  filters.Add(new HandleErrorAttribute());
  #if !DEBUG
  filters.Add(new RequireHttpsAttribute());
  #endif    
}

我的 iis express 上没有启用 https。 在 DEBUG

上正常工作

我只是想将 IP 与 IIS 绑定,但最终弄乱了 IIS 配置文件 我为此尝试了 20 多种解决方案,其中包括

  1. .vs某项目文件删除解决方案
  2. IIS文件夹配置文件删除
  3. IIS文件夹删除
  4. VS2019 更新
  5. VS2019修复
  6. 无数次机器和VS重启
  7. CMS 上的各种命令
  8. 各种软件更新
  9. 各种端口变化

但是对其他人也可能有用的方法是 REPAIR 来自

的 IIS
Control Panel\Programs\Programs and Features

其他也可以参考

确保禁用脚本调试

尽管尝试了上述几个建议,但我还是断断续续地收到这个消息。一旦我禁用它,我调试我的网站就像做梦一样。 (想想我只是偶然打开它,或者可能是在前世)。

如果您使用的是 "real" IIS,则当 W3SVC(万维网发布)服务停止时会发生这种情况。

这看起来很明显,但如果您不小心停止了该服务或将其设置为手动,这可能会发生在您身上。

我知道标题说的是 IIS express,但是 google 即使使用 -Express 提示也似乎没有过滤掉 express 所以希望这能帮助找到这个页面而不是 IIS-specific一个。

到目前为止,我最初尝试了此 post 中的所有内容,除了修复 IIS 10 Express 并且 none 它对我有用。我没有修复 IIS 10 Express,因为当您通过 visual studio 安装它时,它希望通过 Visual Studio 而不是通过程序和功能进行修复。

我发现如果我去修复 visual studio,它想要重置所有内容(例如您的扩展和自定义),这似乎有点过分了。

如果您尝试从 Visual Studio 功能中取消选中 IIS 10 Express,它可能会删除与其相关的所有组件(例如 ASP.NET)。这也似乎有点矫枉过正。

最后,我通过转到“工具”->“获取工具和功能”(在 Visual Studio 2019 内),取消选中 ASP.NET 和网络开发,然后立即重新选中,然后单击确定。这导致它只对那些 ASP.NET 和 Web 开发组件进行修复。

注意:我想我只是采用了 ASP.NET 和 Web 开发工作负载的默认值,因此取消选中并重新选中可能会清除一些默认情况下不存在的组件。

据我所知,它没有删除任何内容或重置设置,但我现在可以按预期通过本地主机访问我的网站 api。

对我来说,出现 ERR_CONNECTION_REFUSED 错误是因为应用程序端口正在使用中。 如果你想要一个更具体的异常 - 运行 一个没有调试的网站 (Ctrl+F5),之后 IIS Express 会显示这样的异常:

这通常发生在安装了保留一些端口的软件之后。例如 Docker 或 Hyper-V。 我的算法,用于更改端口(虚拟目录):

  1. 关闭 Visual Studio
  2. 删除.vs/%PROJECT_NAME%/applicationhost.config(Visual Studio自动创建)
  3. 运行 Visual Studio
  4. 更改项目属性中的端口
  5. 点击创建虚拟目录
  6. 保存项目

有必要关闭 Visual Studio,因为 applicationhost.config 在应用程序 运行 期间不会热重新加载。同时删除 applicationhost.config 删除旧的虚拟目录 有不兼容的数据。