尝试连接到运行 IISExpress 的本地主机时如何解决 ERR_CONNECTION_REFUSED - 错误 502(无法从 Visual Studio 调试)?
Posted
技术标签:
【中文标题】尝试连接到运行 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)? 【发布时间】:2015-11-18 09:11:41 【问题描述】:这是在 Windows Server 2008 上运行的,并且曾经在几个月前工作过。我刚刚再次使用此服务器进行 VS 的一些开发工作。
这是一个实时网络服务器,也用于为一些测试站点提供服务。
这在运行 Visual Studio 时出现,然后启动我的项目进行调试。
在 IISExpress 启动时尝试通过localhost:xxxx
启动任何站点(使用配置中的实际端口号来访问不同的站点):
This webpage is not available
ERR_CONNECTION_REFUSED
我已经在这几天了,因为我读过其他人也有类似的问题,尝试过most things 我读过包括将managedruntimeversion
从“v4.0”更改为“v4.0.30319” .net 4.5(我以前从未这样做过)并禁用日志记录模块(所有建议都找到了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
。
【问题讨论】:
This fix all my problems on Opera and Chrome browsers 【参考方案1】:Sam 的解决方案对我有用,但我不想作为永久解决方案以管理员身份运行。
这就是我的解决方法:
-
以管理员身份运行 CMD
输入“netsh http show urlacl”并找到相关端口的保留url
输入“netsh http delete urlacl url=YourReservedUrlHere”
然后我可以在不需要管理员权限的情况下运行我的应用程序。但它确实扰乱了从外部计算机浏览到我的应用程序的能力。现在对我来说足够接近了。
【讨论】:
谢谢,解决了我的问题。删除保留的 URL 后,重新构建项目,然后它可以在没有管理员模式的情况下完美运行。【参考方案2】:对我来说,出现 ERR_CONNECTION_REFUSED 错误是因为某个应用程序端口正在使用中。 如果您想要更具体的异常 - 无需调试 (Ctrl+F5) 即可运行网站,然后 IIS Express 向我显示此类异常:
这通常发生在安装了保留某些端口的此类软件之后。例如 Docker 或 Hyper-V。 我的算法,用于更改端口(虚拟目录):
-
关闭 Visual Studio
删除 .vs/%PROJECT_NAME%/applicationhost.config(Visual Studio 自动创建)
运行 Visual Studio
在项目属性中更改端口
点击创建虚拟目录
保存项目
有必要关闭 Visual Studio,因为 applicationhost.config 在应用程序运行期间不会热重新加载。同时删除 applicationhost.config 删除旧的虚拟目录女巫有不兼容的数据。
【讨论】:
【参考方案3】:到目前为止,我最初尝试了这篇文章中的所有内容,但修复 IIS 10 Express 除外,但没有一个对我有用。我没有修复 IIS 10 Express,因为当您通过 Visual Studio 安装它时,它希望通过 Visual Studio 进行修复,而不是通过程序和功能进行修复。
我发现如果我去修复 Visual Studio,它想要重置所有东西(例如你的扩展和自定义),这看起来有点过头了。
如果您尝试从 Visual Studio 功能中取消选中 IIS 10 Express,它可能会删除与其相关的所有组件(例如 ASP.NET)。这似乎也有点矫枉过正。
最后,我通过转到工具 -> 获取工具和功能(在 Visual Studio 2019 中),取消选中 ASP.NET 和 Web 开发,然后立即再次重新检查它,然后单击确定。这导致它只对那些 ASP.NET 和 Web 开发组件进行修复。
注意:我认为我只是为 ASP.NET 和 Web 开发工作负载采用了默认值,因此取消选中和重新选中可能会清除一些默认情况下不存在的组件。
它没有删除任何内容或重置设置,但我现在可以按预期通过 localhost 访问我的 web api。
【讨论】:
【参考方案4】:此问题可能是因为您最近在应用程序配置中使用了 IP 地址绑定。
解决问题的步骤:
在管理员访问命令终端中运行以下命令netsh http 显示 iplisten
如果您看到类似下面的内容,那么此解决方案可能对您没有帮助。
IP 监听列表中的 IP 地址:
0.0.0.0
如果您看到不同于 0.0.0.0 的内容,请尝试以下步骤来解决此问题。
使用提升的命令终端按顺序运行以下 shell 命令(这里11.22.33.44是实际需要移除的IP)netsh http delete iplisten ipaddress=11.22.33.44
netsh http add iplisten ipaddress=0.0.0.0
iis重置
现在您的 issexpress 已设置为侦听任何 ping 到 localhost 绑定。
【讨论】:
@Niraj Kumar Chauhan 拯救了一天! Lifesaver... 不知道 0.0.0.0 一开始是如何被删除的,但添加回来解决了这个问题。 在搜索 Power BI 报表服务器未正确侦听的原因 7 小时后:执行此操作的 2 秒修复了它。谢谢!我们现有的配置有 '::' 而不是 0.0.0.0;这不一样吗和/或怎么可能改变? 嘿,成功了!在我的计算机上,第一个命令显示 IP 地址为零,所以我只运行了“add”命令和“iisreset”命令。在那之后,我仍然需要重新部署我的项目并再次重新启动 IIS,但它成功了。 最佳答案在这里,。【参考方案5】:如果您使用的是“真正的”IIS,如果 W3SVC(万维网发布)服务停止,就会出现这种情况。
看起来应该很明显,但如果您不小心停止了服务或将其设置为手动,这可能会发生在您身上。
我知道标题说 IIS express,但是即使使用 -Express 提示,谷歌似乎也没有过滤掉 express,所以希望这可以帮助找到此页面而不是 IIS 特定页面的其他人。
【讨论】:
【参考方案6】:确保禁用脚本调试
尽管尝试了上述几个建议,但我还是间歇性地得到了这个。禁用此功能后,我的网站调试工作就像做梦一样。 (想想我只是偶然打开它,或者可能是在前世)。
【讨论】:
【参考方案7】:我只是尝试将 IP 与 IIS 绑定,但最终弄乱了 IIS 配置文件 我确实为此尝试了 20 多种解决方案,其中包括
-
.vs文件删除项目解决方案
IIS 文件夹配置文件删除
IIS 文件夹删除
VS2019 更新
VS2019修复
无数次机器和VS重启
CMS 上的各种命令
各种软件更新
各种端口变化
但可能对其他人也有效的方法是来自
的REPAIR
IIS
Control Panel\Programs\Programs and Features
其他的也可以参考this answer
【讨论】:
【参考方案8】:在启用 SSL 并在浏览器中使用地址后,我已通过转到项目属性 -> 调试来解决
【讨论】:
【参考方案9】:这可能与遇到此问题的特定人群有关...也许有不同的风格。
我在 RELEASE 上强制进行 https 重定向。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
filters.Add(new HandleErrorAttribute());
#if !DEBUG
filters.Add(new RequireHttpsAttribute());
#endif
而且我的 iis express 上没有启用 https。 在 DEBUG 上正常工作
【讨论】:
【参考方案10】:虽然可能与您的问题无关,但我今天遇到了同样的问题。事实证明,我启用了 URL 重写模块来强制我的站点使用 HTTPS 而不是 HTTP,并且在我的生产环境中,这工作得很好。但是在我的开发系统上,它在我的默认站点中作为应用程序运行,它失败了... 事实证明,我的默认站点没有 HTTPS 绑定,因此重写模块会将我从 HTTP 发送到 HTTPS,但没有任何东西在监听 HTTPS 端口... 出于类似的原因,您可能会遇到此问题。如果您尝试访问的站点没有正确绑定,则似乎会发生此错误...
【讨论】:
【参考方案11】:我最近从另一台机器复制源代码时遇到了这个问题。
-> 删除 .vs 文件夹(它是隐藏文件夹,因此请确保您已启用查看隐藏文件夹选项) -> 打开视觉工作室并构建你的项目。 Visual Studio 将根据当前系统配置创建新的 .vs 文件夹
【讨论】:
【参考方案12】:我在 Chrome 上尝试了很多方法,但唯一对我有用的是 “清除浏览数据”
不得不做“高级”版本,因为标准不起作用。我怀疑是“内容设置”在这样做。
【讨论】:
【参考方案13】:我遇到了同样的问题。我尝试了以下步骤:
-
关闭 Visual Studio 2017
删除了 [solutionPath].vs\config\applicationhost.config
重新打开解决方案,点击【创建虚拟目录】
试图运行 => ERR_CONNECTION_REFUSED
失败
再试一次:
-
关闭 Visual Studio 2017
删除了 [solutionPath].vs\config\applicationhost.config
删除了 .\Documents\IISExpress\config\applicationhost.config
重新打开解决方案,点击【创建虚拟目录】
试图运行 => ERR_CONNECTION_REFUSED
失败
再试一次:
-
关闭 Visual Studio 2017
删除了 [solutionPath].vs\config\applicationhost.config
删除了 .\Documents\IISExpress\config\applicationhost.config
将 127.0.0.1 localhost 添加到 C:\Windows\System32\drivers\etc\hosts
重新打开解决方案,点击【创建虚拟目录】
试图运行 => ERR_CONNECTION_REFUSED
失败
它的工作原理:
-
关闭 Visual Studio 2017
删除 [solutionPath].vs\config\applicationhost.config
启动“管理计算机证书”并
在 Personal-> Certificates 中找到证书“localhost”
删除该证书(风险自负)
开始控制面板\所有控制面板项\程序和功能
找到“IIS 10.0 Express”(或您自己的 IIS Express 版本)
点击“修复”
重新打开解决方案并点击[创建虚拟目录]
启动网络项目。
你会收到这个问题:。点击“是”
你会收到这个问题:。点击“是”
现在可以了。
【讨论】:
【参考方案14】:一个简单的解决方法(它对我有用)是使用 IP 地址而不是 localhost。这应该适合您的开发任务。
【讨论】:
【参考方案15】:确保您也指定了起始页。右键单击要用作起始页的 .aspx 页面,然后选择“设置为起始页”
【讨论】:
【参考方案16】:就我而言,我的同事更改了解决方案名称,以便在我获得最新版本的项目后,我使用 IIS EXPRESS 运行我的 Web 应用程序,然后在我的 google chrome 中收到消息 ERR_CONNECTION_REFUSED
。
在我尝试了我在互联网上找到的所有解决方案后,我终于通过以下步骤解决了问题:
-
关闭VS
删除项目文件夹中的.vs
文件夹
以管理员身份运行 VS
打开调试 > [您的应用程序] 属性 > Web
更改项目 URL 中的端口,不要忘记使用 https
因为就我而言,当我使用http
时,它仍然无法正常工作。
点击Create virtual directory
使用 IIS EXPRESS 再次运行应用程序。
Web 应用程序运行成功。
希望这些有所帮助。
【讨论】:
【参考方案17】:尝试更改项目中的端口号?
项目属性 → Web → 服务器 → 项目 URL:
更改端口号后不要忘记点击Create Virtual Directory
,或者在提示创建虚拟目录时回复“是”! (感谢Connor)
注意:我有点不愿意发布这个作为答案,因为我不知道是什么 问题是什么,或者是什么原因造成的,但我遇到了类似的问题,更改端口号对我有用。我只是根据 cmets 中的建议发布这个,这也适用于其他人。
在我的情况下,我使用的特定端口号似乎有冲突,所以我换了一个,我的网站立即弹出!我不确定这对旧端口号意味着什么,或者我是否能够再次使用它。也许比我更有知识的人可以插话。
【讨论】:
这对我有用——而不是像这个答案 ***.com/questions/7227845/… 中提到的那样修改浏览器设置 这对我有用。更改端口号后,系统提示我更改我的虚拟目录,该目录以某种方式更改为不正确。 这对我也有用。不知道它是怎么发生的。我停止了 IIS Express,在下一次运行时,除了错误什么都没有。 更改端口号后请务必点击“创建虚拟目录”! 我今天又遇到了这种情况! :/ 虽然我很高兴我的建议对人们有所帮助,但我当然希望我能找出问题所在。在这里慢慢检查可用的端口号:P【参考方案18】:我通过使用Run as administrator
启动Visual Studio 解决了这个问题。如果您想将项目发布到本地 IIS,这也是必需的。
永久设置:-
-
右键单击 Visual Studio 图标
选择
Properties
点击Advanced
确保选中Run as administrator
一直点击OK
。
启动 Visual Studio,加载您的项目并开始调试
【讨论】:
【参考方案19】:重建一切对我有用。 VS2013,IIS Express。
【讨论】:
【参考方案20】:感谢您的所有回答。我尝试了所有这些,但没有一个对我有用。起作用的是从 .vs 文件夹(在项目/解决方案的文件夹中找到)中删除 applicationhost.config 并创建一个新的虚拟目录(项目属性 > Web > 创建虚拟目录)。希望这对其他人有帮助。
【讨论】:
我在 VS2013 中打开一个 VS2015 解决方案并在其中工作了一段时间然后回到 VS2015 时遇到了同样的问题。删除 applicationhost.config 解决了它。 在我的情况下 applicationhost.config 并重新启动 Visual Studio 导致“项目加载失败”。那时我什至无法访问项目属性。【参考方案21】:在我的例子中,它是由无限循环/堆栈溢出引起的。
【讨论】:
【参考方案22】:在我的情况下,它是由没有管理权限的启动 IIS 引起的。当我以管理员身份启动 IIS 并启动该站点时,它运行良好
【讨论】:
这就是我的答案,虽然我不记得我第一次打开项目时以管理员身份运行 VS。 哦,对了(打额头)【参考方案23】:我刚刚为我的机器修复了这个问题。 也许它会对某些人有用。也许不适合其他人,但这对我有用。
在 IIS 中,我必须将 https 的绑定添加到默认网站(或者,我想是您正在运行应用程序的网站)。
现在我的 localhost 在从 Visual Studio 调试时可以工作。
【讨论】:
请注意,检查是否是问题所在只需将 URL 中的 https 更改为 http,因为 http 绑定应该已经到位。 这为我解决了问题。我怀疑当我告诉 Visual Studio 为我的开发 IIS 服务器构建第二个应用程序时,一定有什么东西删除了我的第一个应用程序的绑定。 我还必须删除存在的绑定net.tcp 808:*
(我真的不知道它的重要性,所以要小心)但对我来说这两件事 - 添加 https:443(到现有的 http:80)并删除 net.tcp 最终奏效了!! (在尝试了所有无数的东西 grrr 之后)以上是关于尝试连接到运行 IISExpress 的本地主机时如何解决 ERR_CONNECTION_REFUSED - 错误 502(无法从 Visual Studio 调试)?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5 '..failed to open stream: Permission denied' 连接到本地主机时出现异常 [重复]