无法连接到任何在线资源。

82

我在Windows 7上安装了Visual Studio 2010 Premium。当我尝试连接到在线库或在线模板时,会收到以下类似的错误消息:

无法搜索在线扩展,因为尝试联系服务器时发生错误

它要求我在Visual Studio Gallery中启用访问扩展。我已在Extension Manager工具/选项页面中启用了这些选项。互联网连接也正常。

我的计算机防火墙已关闭。我使用代理连接到互联网,但是当浏览器连接到互联网时它可以正常工作(即VS2010的内部浏览器也可以正常工作)。那么在VS2010中设置连接到其他在线资源的代理的位置在哪里呢?

我在另一台计算机上运行VS2010 Ultimate试用版,那边可以正常工作。


我在我的答案之前添加了其他三个答案中的配置补充,然后就成功了 XD。 - scottm
9个回答

135

尝试将以下内容添加到devenv.exe.config(位于Common7\IDE文件夹中):

<configuration>
  <system.net>
    <settings>
      <servicePointManager expect100Continue="false" />
    </settings>
  </system.net>
</configuration>

这是一些代理服务器已知的问题,这个问题将在未来的版本中解决。


1
谢谢。我使用ipcop作为家庭防火墙,但是Visual Studio 2010扩展程序管理器无法连接到互联网。以下方法可解决“正在尝试连接”的错误消息问题。 - spinner_den_g
1
在我的情况下,需要多一步操作:我还必须在Internet Explorer中配置正确的代理,仅在默认浏览器中设置是没有帮助的。这可能相当于设置您的系统默认网络代理。 - Simon D.
这对我起作用。唯一的问题是,如果您已经有一个system.net节点,则只需在setting节点下添加 <servicePointManager expect100Continue="false" /> - VoodooChild
1
谢谢,我在C# Express 2010中也遇到了同样的问题,需要修改的文件是VCSExpress.exe.config - guzart
对于 Visual Studio 2012 Express 版本,该文件为 WDExpress.exe.config。 - Dan
我想在访问互联网(NuGet程序包管理器)时使用代理,但不想在项目的Team Foundation Server(本地网络上的192.168.1.5)上使用它。这可行吗?因为我已经在“Internet选项>连接>高级”菜单中设置了此IP地址的例外,并且仍然尝试将代理用于TFS,导致一些HTTP 407错误。我正在使用VS Express 2013。 - snajahi

31

25

我需要用上述所有方法才能让我的工作正常运行。我的 system.net 设置如下:

<system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
        <proxy proxyaddress="http://your.proxyserver.ip:port"/>
    </defaultProxy>
    <settings>
        <ipv6 enabled="true"/>
        <servicePointManager expect100Continue="false" />
    </settings>
</system.net>

1
需要修改的文件是:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config。 - MaikoID
非常感谢!对我很有用,但我不得不将 <proxy proxyaddress="http://your.proxyserver.ip:port"/> 更改为 <proxy usesystemdefault="True"/> - Rodrigo Reis

13

在我的情况下,Visual Studio 拒绝从 Internet Explorer 读取设置。我最终通过显式提供代理的 URL 并将 servicePointManager 的 expect100Continue 设置为 false,使其正常工作。要手动添加代理地址,XML 如下所示:

<defaultProxy>
    <proxy proxyaddress="http://your.proxyserver.ip:port"/>
</defaultProxy>

5

对我而言,解决问题的方法是进入Internet Explorer,打开“工具”>“Internet选项”>“连接”>“LAN设置”对话框,并更改“自动检测设置”和代理服务器设置的状态。根据您的连接类型,您可能需要更改这些设置以使其正常工作。


0

您可以在devenv.exe.config中添加以下设置

<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
   <proxy usesystemdefault="True" />
</defaultProxy>
<settings>
    <ipv6 enabled="true"/>
    <servicePointManager expect100Continue="false" />
</settings>


0

对我而言,设置IE代理没有起到帮助作用。然而,在Windows Server 2008 R2 x64上设置操作系统代理有所帮助。

netsh winhttp set proxy myproxy.corp.com:80

查看设置: netsh winhttp show proxy


0

对我来说,上述配置更改在Windows Active Directory环境中不起作用。请将您在上面输入的任何注释全部删除。

我的做法:

进入凭据管理器(Windows 7或8),添加代理对话框中出现的任何用户名的代理凭据,例如VSCredentials_corp-proxy.domain.local/username,然后输入您的Windows密码。

完成了,我成功了!


0

我知道这已经过时了,但对于任何需要回退并使用Visual Studio 2010的人,并且遇到了这个问题,我找到了以下文章和解决方法。

NuGet包还原失败...

请注意,该解决方案有一个你应该运行的命令,但由于某种原因,该人在<code>行中包含了一个无效的部分。删除命令中你应该运行的代码部分,然后轻松搞定。不需要执行上述任何其他修复操作。

以防万一上面的链接失效了,解决方法如下:

对于旧版的Visual Studio,例如Visual Studio 2012和Visual Studio 2013,您可能会遇到类似的错误。原因与TLS和证书有关。我认为你可以尝试这样做:打开NuGet包管理控制台(工具 > NuGet包管理器 > 包管理器控制台)(如果你能在VS2012中找到它的话。不太确定它是否存在于VS2012中,因为VS2012是一个旧版本的VS),输入以下命令:

PM> [Net.ServicePointManager]::SecurityProtocol=[Net.ServicePointManager]::SecurityProtocol-bOR [Net.SecurityProtocolType]::Tls12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接