尝试连接到运行IISExpress的localhost时如何解决ERR_CONNECTION_REFUSED - 错误502(无法从Visual Studio调试)?

时间:2015-08-24 20:09:10

标签: visual-studio localhost iis-express

这是在Windows Server 2008上运行的,几个月前就可以运行了。我现在只是再次使用这个服务器来开发VS.

这是用于提供一些测试站点的实时Web服务器。

这是在运行Visual Studio,然后启动我的项目以进行调试时出现的。

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

This webpage is not available

ERR_CONNECTION_REFUSED

我已经在这里待了几天,因为我读过其他人有过类似的问题,试过most things我读过包括更改managedruntimeversion来自" v4.0&# 34;到" v4.0.30319" for .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

Fiddler capture

我已经从IE的局域网连接部分删除了所有代理设置,之前我在VS中收到 red-x 弹出窗口,表示 IISExpress无法启动 EM>

这不是SSL与非SSL的问题。

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

我尝试多次删除IISExpress配置/设置文件夹。

当前 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有一个标记。

请建议离开,因为我不想打开一台新服务器。

- 更新 -

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

23 个答案:

答案 0 :(得分:80)

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

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

enter image description here

在更改端口号后,不要忘记单击Create Virtual Directory或回复“是”以提示创建虚拟目录! (谢谢Connor

注意:我不太愿意将此作为答案发布,因为我不知道是什么 问题是或是什么导致了它,但我遇到了类似的问题,更改端口号对我来说是个窍门。我只是根据评论中的建议发布这个,这也适用于其他人。

在我的情况下,似乎有些东西与我使用的特定端口号相冲突,所以我改为另一个,我的网站立即弹出!我不确定这对旧的端口号是什么意思,或者我是否能够再次使用它。也许比我更了解情况的人可以加入这个问题。

答案 1 :(得分:33)

感谢所有答案。我尝试了所有这些,但没有一个适合我。从.vs文件夹(在项目/解决方案的文件夹中找到)中删除applicationhost.config并创建新的虚拟目录(项目属性&gt; Web&gt;创建虚拟目录)的工作原理是什么。希望这会对别人有所帮助。

答案 2 :(得分:22)

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

解决问题的步骤:

  • 在管理员访问命令终端
  • 中运行以下命令
  

netsh http show iplisten

如果您看到下面的内容,那么此解决方案可能无法帮助您。

  

IP侦听列表中的IP地址:

     

0.0.0.0

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

  • 在提升的命令终端
  • 中连续运行这些命令
  

netsh http delete iplisten ipaddress = 11.22.33.44(其中11.22.33.44是需要删除的实际IP)

     

netsh http add iplisten ipaddress = 0.0.0.0

     

IISRESET

现在你的issexpress被设置为监听任何ping到localhost绑定。

答案 3 :(得分:9)

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

在IIS中,我不得不将https的绑定添加到默认网站(或者,我想,你正在运行应用程序的网站)。

enter image description here

现在,我的localhost在从Visual Studio调试时工作。

答案 4 :(得分:4)

在我的情况下,它是由没有管理权限的IIS启动引起的。当我以管理员身份启动IIS并启动网站时,它运行良好

答案 5 :(得分:3)

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

这就是我在我的案例中解决的问题:

  1. 以管理员身份运行CMD
  2. 输入&#34; netsh http show urlacl&#34;并找到带有相关端口的保留网址
  3. 输入&#34; netsh http delete urlacl url = YourReservedUrlHere&#34;
  4. 之后我可以在不需要管理员权限的情况下运行我的应用程序。但它确实搞砸了从外部计算机浏览我的应用程序的能力。我现在已经足够接近了。

答案 6 :(得分:2)

就我而言,它是由无限循环/堆栈溢出引起的。

答案 7 :(得分:1)

我通过使用Run as administrator启动Visual Studio解决了这个问题。如果要将项目发布到本地IIS,则还需要这样做。

永久设置: -

  1. 右键单击Visual Studio图标
  2. 选择Properties
  3. 点击Advanced
  4. 确保Run as administrator已签入
  5. 完全点击OK
  6. 启动Visual Studio,加载项目并开始调试

答案 8 :(得分:1)

我通过参加项目礼仪解决了 - &gt;调试,启用SSL并在浏览器中使用地址

enter image description here

答案 9 :(得分:0)

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

enter image description here

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

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

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

答案 10 :(得分:0)

到目前为止,除了修复 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。

答案 11 :(得分:0)

如果您使用的是“真实的” IIS,则在停止W3SVC(万维网发布)服务时可能会发生这种情况。

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

我知道标题说的是IIS express,但是即使使用-Express提示,google似乎也不会过滤掉express,因此希望这可以帮助发现此页面的其他人,而不是IIS特定的人。

答案 12 :(得分:0)

确保禁用脚本调试

enter image description here

尽管尝试了上述一些建议,但我还是间歇性地遇到了这个问题。禁用此功能后,调试网站就像梦一样。 (想想我只是偶然地打开它,或者也许是在前世。)

答案 13 :(得分:0)

我只是试图将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

否则,您也可以参考this answer

IIS10 Repair

答案 14 :(得分:0)

这可能与某些患有此问题的人有关……也许口味不同。

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

<xsl:template match="/persons/person[@father='0' and @mother='0'][@marriedTo &gt; @id]">
    <div class="person">
         <xsl:value-of select="name"/>
    </div>
    <div class="person">
         <xsl:value-of select="key('couple',@marriedTo)/name"/>
    </div>
</xsl:template>

<xsl:template match="/persons/person[@father='0' and @mother='0'][@marriedTo &lt; @id]" />

在我的iis Express上没有启用https。 在DEBUG上正常工作

答案 15 :(得分:0)

虽然可能与您的问题无关,但今天我遇到了同样的问题。事实证明,我已经启用了URL重写模块,以强制我的站点使用HTTPS而不是HTTP,并且在我的生产环境中,这很好。但是在我的开发系统上,它在默认站点中作为应用程序运行时,它失败了...
事实证明,我的默认站点没有HTTPS绑定,因此重写模块会将我从HTTP发送到HTTPS,但是没有人在监听HTTPS端口...
由于类似原因,您很可能遇到此问题。如果您要访问的网站没有适当的绑定,则似乎会发生此错误...

答案 16 :(得分:0)

我最近从另一台计算机复制源代码时遇到此问题。

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

答案 17 :(得分:0)

我在Chrome上尝试了很多方法,但是唯一对我有用的是 “清除浏览数据”

由于标准不起作用,因此不得不执行“高级”版本。我怀疑是“内容设置” 在做。

答案 18 :(得分:0)

我有同样的问题。我尝试了以下步骤:

  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. 启动“管理计算机证书”,然后 在“个人”->“证书”中找到证书“ localhost” enter image description here
  4. 删除该证书(风险自负)
  5. 启动控制面板\所有控制面板项\程序和功能
  6. 找到“ IIS 10.0 Express”(或您自己的IIS Express版本)
  7. 点击“修复” enter image description here
  8. 重新打开解决方案,然后单击[创建虚拟目录]
  9. 启动Web项目。
  10. 您将收到以下问题:enter image description here。点击“是”
  11. 您将获得以下问题:enter image description here。点击“是”
  12. 现在可以使用了。

答案 19 :(得分:0)

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

答案 20 :(得分:0)

确保您还指定了起始页。右键单击要用作起始页的.aspx页面,然后选择“设置为起始页”

答案 21 :(得分:0)

在我的情况下,我的同事更改了解决方案名称,以便在我获得项目的最新版本后,使用IIS EXPRESS运行我的Web应用程序,然后在我的Google Chrome中收到消息ERR_CONNECTION_REFUSED

在我尝试了我在互联网上找到的所有解决方案后,我终于用这些步骤解决了问题:

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

  3. 以管理员身份运行VS

  4. 打开调试&gt; [您的申请]属性&gt;网络

  5. 更改项目网址中的端口,不要忘记使用https 因为在我的情况下,当我使用http时,它仍然无效。

  6. 点击Create virtual directory

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

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

  9. 希望这些有所帮助。

答案 22 :(得分:0)

Rebuild All为我工作。 VS2013,IIS Express。