本地主机拒绝连接Visual Studio中的错误


79

我已经从另一个系统复制了我的解决方案文件,并试图在我的机器上运行它:为此,我转到了项目文件夹,并删除了先前的解决方案文件,然后复制了新的解决方案文件。

现在,它开始给我错误。连接被拒绝等。因此,我从这里得到一个解决方案:当尝试连接到运行IISExpress的本地主机时,如何解决ERR_CONNECTION_REFUSED-错误502(无法从Visual Studio调试)?

据此,我将端口号从1049更改为1052。它已加载,并且其中一个页面已加载。但是,当我输入所需的登录凭据时,它将再次重定向到旧端口,如下所示:

http://localhost:1049/Home/SearchFlight

错误是:

 This site can’t be reached

 localhost refused to connect.
 Search Google for localhost 1049 Home Search Flight
 ERR_CONNECTION_REFUSED

现在,我不知道该怎么办。我已将端口号更改为1052,但仍指向1049。我现在该怎么办?

Answers:


107

我有一个类似的问题。试试这个,它应该工作

  1. 转到您的项目文件夹并打开该.vs文件夹(将选中的“检查隐藏的项目”框保持选中状态,因为有时该文件夹可能被隐藏)

  2. .vs文件夹中打开config文件夹

  3. 在那看到那个applicationhost.config文件吗?删除那个东西。(不要担心,一旦重新编译项目,它将自动重新生成。)


7
这对我有用。您可能需要以管理员模式启动VS。
WillC 2016年

4
我收到错误消息“无法启动IIS Web服务器”。
Baimyrza Shamyr

7
尝试了此操作,仍然收到“无法访问此站点”消息。(我也试图在管理员模式下打开,没有帮助)
Nathan Tregillus

1
也为我工作
堵嘴

6
直到VS 2017重新启动后,它才起作用。不需要管理模式。
MusicAndCode

44

通常在本地计算机上,我们会收到错误消息,例如This site can't be reached localhost refused to connect因为我们为本地IIS Express破坏了自签名证书配置。有时,当您更改launchSettings.json此计算机中的URL或根本没有在此计算机上配置自签名证书时,就会发生这种情况。

在本地计算机上修复自签名证书,您需要: 

  1. 删除.vs文件夹(需要关闭Visual Studio 2017)
  2. 在以下命令中运行以下命令cmd As Administrator

    cd "C:\Program Files (x86)\IIS Express"

    IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:12345/ -UseSelfSigned

  3. 确保运行VS2017 As Administrator并检查问题是否得到解决

注:https://localhost:12345/是什么是你launchSettings.jsonHTTPS


3
这实际上有所帮助。我综合考虑了一些问题:提琴手正在运行并且证书丢失。
Diomos '18 -10-15

2
这是我的赢家。我在本地主机上的其他端口上为不同的应用程序添加了一个openssl证书,并且它管理了我用于iis express的自签名证书。修复特定本地主机端口上的自签名证书会对其进行修复。
C. Hilarius博士,

1
固定,非常感谢!我见过很多人说删除.vs文件夹,但这是我见过的关于ssl cert的第一个答案,这对我来说很关键。
tagustini

1
就我而言,我必须在其他端口上运行44343。IisExpressAdminCmd.exe setupsslUrl -url:localhost:44343 -UseSelfSigned
Vitaliy Markitanov

29

更改端口号已解决问题

在此处输入图片说明


暂时解决了。每次运行项目时,我都会无聊更改端口。
jstuardo

使用VS 2019预览版2.出现相同的错误,并通过更改为上面的项目URL进行修复。(天知道为什么):-)
netchicken

实际上,我必须删除整个.vs文件夹并更改端口号,但至少最终它可以工作
William

11

只需删除项目文件夹中的(obj)Object文件夹,然后运行该应用程序,即可正​​常运行。脚步:

  1. 右键单击项目文件夹,然后选择“在文件资源管理器中打开文件夹”。
  2. 然后找到Obj文件夹并将其删除。
  3. 运行应用程序。

8

我有同样的问题。删除.vs文件夹(包括所有内容,文件夹可能被隐藏)对我有用。


当我们将整个项目复制到另一台PC上时,该项目也将处理我们自己的.vs config,因此删除该隐藏文件夹,在新PC上重新打开该项目,它将可以正常工作。
Osify

8

不幸的是,这些答案都不对我有用。这个答案最终仅适用于Chrome。不幸的是,您每次都必须这样做:

  1. 在浏览器中打开它:chrome:// net-internals /#hsts
  2. 转到删除域安全策略
  3. 输入“ localhost”
  4. 重启浏览器

Google Chrome将localhost重定向到https


哇,我一直在尝试通过在最后一个半小时内在VSCode中进行调试来解决此问题,终于做到了。
Nard Dog

有人给这个人一个奖,或者冠!快!
Stackedup

6

通过在以admin身份运行的cmd窗口中列出绑定的IP地址,我解决了类似的问题:

netsh http show iplisten

然后,将它们全部吹走:

netsh http delete iplisten ipaddress=127.0.0.200
netsh http delete iplisten ipaddress=127.0.0.2
...

在某个时间点,我为添加了一个URL保留http://*:44300/,这就是导致localhost无法为我连接的原因。我运行了与您类似的命令,netsh http delete urlacl http://*:44300/并且localhost现在按预期方式连接和调试!
箭袋

5

我以“以管理员身份运行”身份运行Visual Studio,这解决了我的问题。


我敢打赌,这种情况有90%是这种情况。请注意,当您安装VS更新并在安装结束时单击“启动”时,它将不会以管理员身份运行。每次都会得到我。
moomoo

2

我遇到了这个问题,并通过关闭Visual Studio的所有打开的实例来解决了这个问题。


1
同样,具有不同项目的Visual Studio的两个实例也可能在同一端口上运行。使端口不同对我有用。
Ben

2

转到控制面板>程序和功能> IISExpress>修复


删除.vs文件夹对我没有帮助。但是维修帮助了。非常感谢
Dmitresky

2

如果发现是因为我一直在和 netsh http add使IIS Express远程可见的命令。

症状是:

  • 该站点将无法在浏览器中连接
  • 该站点将无法启动(右键单击任务栏中的IIS Express,它丢失了)
  • 如果我以管理员身份运行Visual Studio,它将在IIS Express中启动并在浏览器中可见

解决方案是列出所有绑定的站点:

netsh http show urlacl

然后删除我最近添加的一个:

netsh http delete urlacl url=http://*:54321/


另外,我已经localhost从网站的隐藏解决方案文件夹文件中删除.vs\config\application.config了:

<bindings>
    <binding protocol="http" bindingInformation="*:54321:" />
</bindings>

所以不得不放回去:

<bindings>
    <binding protocol="http" bindingInformation="*:54321:localhost" />
</bindings>

很棒的答案。就我而言,我正试图使用ngrok对此站点进行远程访问。它对我不起作用,我在特定端口上无法访问它,完全忘记了我最终使用的过程netsh http add。非常感谢你!
oneberenjena

1

这在使用.net core 2.0的VS2017 v 15.6.7中发生了。

当项目首次启动时,它为本地主机创建了一个SSL证书,并且运行良好。禁用SSL时,我一直遇到此问题。

显然,当您禁用SSL时,端口号将更改,并且并非所有端口号都将更改为新端口。确保“调试”上的端口号全部相同。 在此处输入图片说明





1

我最近遇到了这个确切的问题,并尝试了大多数建议,但事实证明我的问题有所不同。

如果您使用的是HTTP,则我们的应用程序具有一个将您重定向到HTTPS的部分(是的,我知道有更好的方法,但这是传统的)。此外,当您处于开发人员模式时,对本地主机有特殊处理,可将您重定向回HTTP,尽管我不知道为什么。

我有一个新要求,要求在HTTPS中进行测试。

在普通的网页上,将http://更改为https://并调用Redirect可以正常工作,但是在IISExpress中,您使用的是自定义端口。因此,例如,如果您使用的是https:// localhost:44300,则不能仅切换到http:// localhost:44300 b / c,该端口仅提供https服务,而不提供http服务。

因此,如果您遇到此问题并且已经清除了配置文件,但仍无济于事,请检查代码中的重定向。您可能会使用硬编码或部分硬编码的网址或未更新为https的配置文件中的网址。

更新:我还建议清除所有.suo和.user文件,其他人则建议清除obj /文件夹。我建议先关闭VS,然后重新启动。当我尝试设置https://和更改端口时,缓存端口的值给我带来很多麻烦。我也建议尝试使用此建议来检查SSL端口是否在正确范围内,尽管我不知道这是否仍然是必需的https://stackoverflow.com/a/24957146


1

这里存在同样的问题,但我认为这是由于安装了最新版本的Visual Studio并同时运行了2015和2019版本的解决方案。我删除了整个.vs文件夹,然后重新启动Visual Studio,它可以正常工作。

我认为问题在于,.vs文件夹中每个版本的Visual Studio都有多种配置,这似乎搞砸了。



0

为此,我要做的就是重新创建虚拟目录。我已经重新安装了Windows,然后将项目从Git中撤回了。为此,请在解决方案项目上单击鼠标右键,然后选择“属性”,然后转到“ Web”选项卡并单击“项目网址”旁边的“创建虚拟目录”。

我希望这也会对其他人有所帮助!


0

项目属性> Web>创建虚拟目录对我有用


0

右键单击项目>>属性>>选择Web选项卡>>在服务器下选择“使用Visual Development Server”, 以便间接取消选中“本地IIS服务器”

希望它可以解决此问题。


0

以管理员身份打开cmd并运行以下命令:

netsh http delete iplisten ipaddress=xxx.xxx.x.xxx

ipaddress是您的私人IP。
这对我有用。


0

像Donny V.在使用.net core 2.0的VS2017中发生了这种情况。

当项目首次启动时,VS显示了一个对话框,可以为本地主机创建SSL证书-但我不想使用SSL,所以我停止运行并进入“项目属性”并禁用了SSL(可以清除此复选框) 。之后,我不断得到描述的问题。

在尝试了许多事情之后,实际上为我解决了这个问题的是编辑位于[ProjectName] / Properties下的launchSettings.json文件-可从解决方案资源管理器访问它。

编辑完成后,内容看起来像这样(其中12345是端口号,而MyNETCoreApp是项目的名称)。

{
    "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
            "applicationUrl": "http://localhost:12345/"
        }
    },
    "profiles": {
        "IIS Express": {
            "commandName": "IISExpress",
            "launchBrowser": true,
            "launchUrl": "http://localhost:12345/",
            "environmentVariables": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            }
        },
        "MyNETCoreApp": {
            "commandName": "Project",
            "launchBrowser": true,
            "environmentVariables": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "applicationUrl": "http://localhost:12345/"
        }
    }
}

我所做的编辑是:

  • 更新了端口号,使它们都相同
  • 一处删除了key:ssl:0的值
  • 将所有https://实例更新为http://


0

此解决方案为我工作:

  1. 转到您的项目文件夹并打开.vs文件夹(请选中您的“检查隐藏的项目”复选框,因为此文件夹有时可能被隐藏)

  2. .vs文件夹中-打开配置

  3. 看到那里的applicationhost配置文件?删除该东西。(不用担心,一旦重新编译项目,它将自动重新生成。)


0

就我而言,Visual Studio 2017> Tools > Options

在侧面列表的“调试”菜单中找到 Edit and Continue

Uncheck 启用编辑并继续复选框

这解决了我的问题。



0

对我来说,问题是配置设置为自定义AsLive而不是Debug

在此处输入图片说明

放回去对我来说很合理。


0

在没有任何管理员权限的计算机上,我遇到了同样的问题。

摆脱项目文件夹中的.vs文件夹(applicationhost.config文件)还不够。

什么对我有用...我

  • 删除的bin文件夹(当我重用现有项目时)
  • 删除的Obj文件夹
  • 删除的.vs文件夹
  • 更改了项目的端口(我使用了3000),就像@vinayakhegde在上面提到的一样,我还创建了一个虚拟目录
  • --

到目前为止,Localhost正在访问该解决方案。

希望能帮助到你


0

有时https和http端口可以是相同的,因为如果两个标签被赋予相同的端口, IISExpressSSLPortDevelopmentServerPort 确保这两个端口具有不同的端口,则在IISUrl使用默认端口HTTP或HTTPS

https://localhost:44365
  • 对于HTTPS使用 IISExpressSSLPort
  • 对于HTTP使用 DevelopmentServerPort

然后您可以在解决方案文件夹中删除隐藏的.vs文件夹

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.