安装、更新或使用 Visual Studio 时与网络相关错误的疑难解答

适用于: Visual Studio

在防火墙、代理服务器或客户端计算机上安装、更新或使用 Visual Studio 时,可能会遇到与网络或代理相关的错误。 本文提供了这些问题的一些常见方案的解决方案。

错误“需要代理授权”

当用户通过代理服务器连接到 Internet 时,通常会发生此错误。 然后,代理服务器会阻止 Visual Studio 对某些网络资源的调用。

解决方案

若要解决此问题,请尝试以下步骤:

  1. 重新启动 Visual Studio。 一个代理身份验证对话框应该会出现。 出现提示时,在对话框中输入你的凭据。

  2. 如果重启 Visual Studio 无法解决问题,可能是因为代理服务器没有提示输入地址凭据 http://go.microsoft.com ,但会提示 *.visualStudio.microsoft.com 地址。 对于这些服务器,请将以下 URL 添加到允许列表,以取消对 Visual Studio 中所有登录场景的阻止:

    • *.windows.net
    • *.microsoftonline.com
    • *.visualstudio.microsoft.com
    • *.microsoft.com
    • *.live.com
  3. 建议从允许列表中移除 http://go.microsoft.com 地址。 移除地址可允许在 Visual Studio 重启时同时显示 http://go.microsoft.com 地址和服务器终结点的代理身份验证对话框。

配置代理服务器

Visual Studio 应从 Windows 中选取代理设置。 但是,可以按以下方式设置特定的代理服务器。

  • 对于 Visual Studio 2022,请遵循步骤 1、2 和 3。
  • 对于 Visual Studio 2019,请执行以下步骤 1 和步骤 2。
  1. 在以下位置查找 devenv.exe.config(devenv.exe配置文件):

    • Visual Studio 2019: %ProgramFiles%\Microsoft Visual Studio\2019\Enterprise\Common7\IDE%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\IDE
    • Visual Studio 2022: %ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE%ProgramFiles(x86)%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE
  2. 在配置文件中查找 <system.net> 块,然后添加这个代码:

    <defaultProxy enabled="true">
        <proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
    </defaultProxy>
    

    你必须在 proxyaddress="<http://<yourproxy:port#> 中为你的网络插入正确的代理地址。

    备注

    有关详细信息,请参阅<defaultProxy> 元素(网络设置)proxy<> 元素(网络设置)页。

  3. 对于 Visual Studio 2022,请设置代理环境变量:

    • http_proxy:此变量用于 HTTP 请求。 请注意 ,此变量是小写的,因为某些工具希望变量为小写。
    • HTTPS_PROXY:此变量用于 HTTPS 请求。
    • ALL_PROXY:如果未HTTP_PROXYHTTPS_PROXY定义或变量,此变量用于为 HTTP 或 HTTPS 请求指定代理服务器。

    备注

    有关详细信息,请参阅 HttpClient.DefaultProxy

默认用户凭据

如果要使用使用代理运行 Visual Studio 的用户帐户的默认凭据,请执行以下步骤:

  1. 在以下位置查找 devenv.exe.config(devenv.exe配置文件):

    • Visual Studio 2019: %ProgramFiles%\Microsoft Visual Studio\2019\Enterprise\Common7\IDE%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\IDE
    • Visual Studio 2022: %ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE%ProgramFiles(x86)%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE
  2. 在配置文件中查找 <system.net> 块,然后添加这个代码:

    <defaultProxy enabled="true" useDefaultCredentials="true">
       <proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
    </defaultProxy>
    

    你必须在 proxyaddress="<http://<yourproxy:port#> 中为你的网络插入正确的代理地址。

    备注

    有关详细信息,请参阅<defaultProxy> 元素(网络设置)proxy<> 元素(网络设置)页。

  3. Visual Studio 17.8 及更高版本中,我们更新了 Web 请求中默认代理凭据的配置过程。 若要在此更新后启用默认代理凭据,请创建一个名为 VS_USE_DEFAULTPROXY的新环境变量,将其值设置为 true,然后重启 Visual Studio。 此变量告知 Visual Studio 和相关进程将运行进程的用户的默认凭据附加到代理请求。 这类似于 useDefaultCredentials 步骤 2 中 exe 配置文件中执行的作。

调试代理错误

尝试在代理服务器后面建立网络连接时,可能会遇到许多不同类型的故障。 某些失败包括“发送时出错”、“连接被拒绝”和“无法解决地址”。 可能存在其他类型的故障,但它们共有的一些配置在本地计算机或网络上不正确。 为了帮助诊断阻止连接的内容,使用 Visual Studio 外部的工具可能会有所帮助。

  • 如果在发送时遇到连接被拒绝或错误等错误,请尝试以下命令行:

    curl "https://resource" -v
    

    运行此命令会使与资源建立网络连接,并且可能与 Visual Studio 中看到的内容类似。 此时,在尝试使用 Visual Studio 建立连接之前,需要诊断此失败。 此处的故障表示计算机或网络配置问题,而不是 Visual Studio 的产品问题。

  • 如果你知道你位于具有特定地址的代理服务器后面,在http_proxy运行curl命令之前设置和https_proxy环境变量是必需的,因为它将这些环境变量用于代理设置。

    还可以将 help curl 中的开关用于其他选项。 此命令 curl --help proxy 显示可用于设置和配置代理 curl的选项和开关列表。

  • 如果 Visual Studio 登录问题要调试,请运行以下命令:

    curl "https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize" -v
    
    curl "https://management.azure.com" -v
    
    curl "https://graph.microsoft.com" -v
    

    有关登录所需的 URL,请参阅 在防火墙或代理服务器后面安装和使用 Visual Studio。

尝试报告问题时出现“已从 Visual Studio 断开连接”错误

当用户通过代理服务器连接到 Internet 时,通常会发生此错误。 然后,代理服务器会阻止 Visual Studio 对某些网络资源的调用。

解决方案

若要解决此问题,请按照下列步骤操作:

  1. %ProgramFiles(x86)%\Microsoft Visual Studio\Installer 或 %ProgramFiles%\Microsoft Visual Studio\Installer 中找到 feedback.exe.config(feedback.exe的配置文件)。

  2. 在配置文件中,检查是否存在以下代码。 如果代码不存在,请在最后 </configuration> 一行之前添加它。

    <system.net>
        <defaultProxy useDefaultCredentials="true" />
    </system.net>
    

错误“基础连接已关闭”

如果在有防火墙的专用网络中使用 Visual Studio,则 Visual Studio 可能无法连接到某些网络资源。 这些资源可能会包括用于登录和授权的 Azure DevOps Services、NuGet 和 Azure 服务。 如果 Visual Studio 无法连接到上述某个资源,则可能出现以下错误消息:

基础连接已关闭:发送时发生意外错误。

Visual Studio 使用传输层安全性 (TLS) 1.2 协议连接到网络资源。 Visual Studio 使用 TLS 1.2 时,某些专用网络上的安全设备会阻止某些服务器连接。

解决方案

通过将这些域 URL 添加到允许列表来启用连接。

错误“无法分析父进程的 ID”

使用 Visual Studio 引导程序以及 网络驱动器上的response.json 文件时,可能会遇到此错误消息。 错误的来源是 Windows 中的用户帐户控制 (UAC)。

下面是可能出现此错误的原因:映射的网络驱动器或 UNC 共享已链接到用户的访问令牌。 启用 UAC 后,将创建两个用户访问 令牌 :一个具有管理员访问权限,一个没有管理员访问权限。 创建网络驱动器或共享后,用户的当前访问令牌会链接到它们。 由于引导程序必须以管理员身份运行,因此它无法访问网络驱动器或共享,除非驱动器或共享链接到具有管理员访问权限的用户访问令牌。

解决方案

若要解决此问题,请使用 net use 命令或更改 UAC 组策略 设置。 有关这些解决方法以及如何实现这些解决方法的详细信息,请参阅:

由于未正确配置网络共享权限,产品无法安装或更新

确保执行安装或更新的帐户对网络共享具有足够的访问权限。

问题 解决方案
用户帐户无法访问文件。 如果用户在计算机上具有管理员权限,并且要从布局安装或更新,则需要确保将网络共享权限(ACL)配置为在共享网络位置之前向用户授予读取访问权限。
系统帐户无法访问文件。 有时,安装或更新是使用系统帐户(而不是用户帐户)运行。 当管理员更新用于使计算机保持更新和安全时,通常会发生这种情况。 需要确保客户端计算机的系统帐户对网络文件共享具有读取权限。 为此,可以创建包含需要共享访问权限的计算机帐户的 Active Directory 组,然后向该 AD 组授予对共享的访问权限。

支持或故障排除

如果 Visual Studio 安装失败,请参阅 Visual Studio 安装和升级问题疑难解答获取分步指南。

更多支持选项:

参考