问题描述
不知道从什么时候开始,在visual studio2022中用copilot一直显示完成你的请求时出现了问题。请重试。

点开显示输出日志发现可能是网络原因,但是我在浏览器打开显示的是404,那就是可以正常连接。

试过很多AI得到的回答无非以下几种:
- 设置了代理
- 防火墙
- 网络原因
但是经过排查防火墙我早就关闭了,代理我也没有设置过全局,都是使用的浏览器插件。而网络原因更不太可能了,因为我在vscode中是能正常使用copilot的。
解决方案
今天想再试试AI,我又把上面那一大串的错误复制发给了GPT5.2,然后他给出一系列的测试命令(因为使用的vscode里的copilot,所以只需要一直点允许它就能执行命令并获取执行结果了)。
$ErrorActionPreference='Continue'; Write-Host '=== Env Proxy Vars ==='; gci env: | ? { $_.Name -match 'PROXY|COPILOT' } | sort Name | ft -AutoSize; Write-Host '=== WinHTTP Proxy ==='; netsh winhttp show proxy; Write-Host '=== DNS ==='; Resolve-DnsName api.githubcopilot.com | select -First 5 | ft -AutoSize; Write-Host '=== TCP 443 ==='; Test-NetConnection api.githubcopilot.com -Port 443 | fl

说明是可以正常连接到copilot的域名
$ErrorActionPreference='Continue'; '=== Env Proxy Vars ==='; Get-ChildItem env: | Where-Object { $_.Name -match 'PROXY|COPILOT' } | Sort-Object Name | Format-Table -AutoSize
netsh winhttp show proxy

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable ; reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer ; reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL

代理也没有设置
Resolve-DnsName api.githubcopilot.com | Select-Object -First 5 | Format-Table -AutoSize
Test-NetConnection api.githubcopilot.com -Port 443 | Format-List

DNS解析也是正常的
curl.exe -I https://api.githubcopilot.com/models
curl.exe -vk https://api.githubcopilot.com/models

这里出现了一些端倪,curl居然无法访问到模型列表,那很可能还是网络原因了,可能是被墙了,加上代理试试
curl.exe -x http://127.0.0.1:10809 -vk https://api.githubcopilot.com/models

那看来就是域名被墙了,国内网络无法正常访问,那么加上代理应该就可以了。为了让代理不影响到其他应用,我们可以只给命令行设置代理,然后从命令行启动vs,为了方便可以写成bat文件
cmd
set HTTP_PROXY=http://127.0.0.1:10809
set HTTPS_PROXY=http://127.0.0.1:10809
set NO_PROXY=localhost,127.0.0.1
set COPILOT_USE_DEFAULTPROXY=1
start "" "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe"

终于能愉快的使用copilot写代码了。之前也试过设置全局代理,原来还需要添加COPILOT_USE_DEFAULTPROXY变量才会生效。