Windows 故障排除步骤

按照以下步骤识别并确认您有代理,并收集进一步故障排除所需的代理主机和端口号。

  1. 检查代理设置。

    1. 打开 Settings 菜单。

    2. 搜索“proxy”,然后选择 Change proxy settings

  2. 检查手动代理配置。

    1. Manual proxy setup 中选择 Use a proxy server 选项。

      • 如果是 On,则目前正在使用代理。

      • 如果是 Off,则没有使用代理。

  3. 检查自动代理配置。

    1. Automatic proxy setup 中,寻找 Use setup script。如果是 On,则可以通过脚本配置代理。

    2. 为了验证,请在您的浏览器中输入脚本 URL。如果下载了文件,则其中包含代理信息。

  4. 使用 Windows PowerShell 检查代理,如下所示:

    $proxyAddr = (Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').ProxyServer
    $proxyEnable = (Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').ProxyEnable
    
    # Output the values
    $proxyAddr
    $proxyEnable
    
    Copy

    例如:

    • 如果 proxyAddrmy.pro.xy:123proxyEnable0,则代理地址是 my.pro.xy:123

    • 如果 proxyEnable0,则代理已被禁用;如果 1,则代理已启用。

  5. 根据代理测试结果继续:

    • 找到代理:根据这些环境变量设置,可以收集到 进一步测试 所需的代理主机和端口。

    • 未找到代理:如果代理测试结果为否,则继续 进一步测试

如果您有代理

确定代理设置后,或者如果您已经知道代理信息,请继续测试遇到问题的 URL。您应该彻底测试 Snowflake 允许列表中的所有 URLs。至少,确保测试导致连接器出现故障的 URL。

在 Windows Powershell 中,运行以下命令,确保在命令中更新 URL,以匹配您正在测试的 Snowflake URL。 另外,请确保更新您的 PROXY_URL

[Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }

$proxy = New-Object System.Net.WebProxy("http://<PROXY:PORT>")
$url = "https://<URL>/"

$req = [Net.HttpWebRequest]::Create($url)
$req.Proxy = $proxy
$req.GetResponse() | Out-Null
$output = [PSCustomObject]@{
  Proxy = $proxy
  URL = $url
  'Issuer' = $req.ServicePoint.Certificate.Issuer
  'Subject' = $req.ServicePoint.Certificate.Subject
}

$output|ConvertTo-Json

Sample expected output:

{
    "Proxy": {
                  "Address": "<IP ADDRESS>"",
                  "BypassProxyOnLocal": false,
                  "BypassList": [
                                ],
                  "Credentials": null,
                  "UseDefaultCredentials": false,
                  "BypassArrayList": [
                                      ]
              },
    "URL": "https://<account>.snowflakecomputing.cn"",
    "Issuer": "CN=Amazon, OU=Server CA 1B, O=Amazon, C=US",
    "Subject": "CN=*.us-east-1.snowflakecomputing.cn",
    "Cert Start Date": "5/23/2022 8:00:00 PM",
    "Cert End Date": "6/22/2023 7:59:59 PM"
}
Copy

在测试结果中观察任何关于代理的引用,以确认在此测试期间是否使用了代理。如果连接成功,请检查输出中提供的发放者信息。

完成这些步骤后,继续 执行后续行动

如果您没有代理

您应该彻底测试 Snowflake 允许列表中的所有 URLs。至少,确保测试导致连接器出现故障的 URL。

  1. 打开 Powershell

  2. Powershell 中运行以下命令,更新命令中的 URL,以匹配您正在测试的 URL。

    [Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
    $url = "https://<URL>/""
    $req = [Net.HttpWebRequest]::Create($url)
    $req.GetResponse() | Out-Null
    $output = [PSCustomObject]@{
      URL = $url
      'Issuer' = $req.ServicePoint.Certificate.Issuer
      'Subject' = $req.ServicePoint.Certificate.Subject
    }
    $output|ConvertTo-Json
    
    Copy

    成功输出示例:

    {
        "URL": "https://<account>.snowflakecomputing.cn"",
        "Issuer": "CN=Amazon, OU=Server CA 1B, O=Amazon, C=US",
        "Subject": "CN=*.us-east-1.snowflakecomputing.cn"
    }
    

    连接失败输出示例:

    Exception calling "GetResponse" with "0" argument(s): "Unable to connect to the remote server"
    At line:4 char:1
    
    + $req.GetResponse() | Out-Null
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo     : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : WebException
    

如果连接成功,请检查输出中提供的发放者信息。

完成这些步骤后,继续 执行后续行动

语言: 中文