使用SonarScanner for MSBuild扫描本地代码报错:请求localhost:9000失败
问题原因
这个错误本质是SonarScanner无法连接到本地SonarQube服务器,请求http://localhost:9000/api/server/version失败,常见诱因包括:
- SonarQube服务未启动
- SonarQube服务端口被修改(默认9000)
- 本地防火墙/安全软件拦截了9000端口的请求
- 全局代理配置干扰了本地localhost请求
解决方法
- 确认SonarQube服务状态
检查SonarQube是否正在运行:Windows下可以查看任务管理器的服务列表,或直接运行SonarQube安装目录bin文件夹下的StartSonar.bat;Linux/macOS则执行安装目录的启动脚本。确保服务完全启动后再重试扫描。 - 验证SonarQube端口配置
打开浏览器访问http://localhost:9000,如果无法打开,检查SonarQube安装目录conf文件夹下的sonar.properties文件,查看sonar.web.port参数的值。如果端口不是9000,扫描时需要通过参数指定正确地址,比如:SonarScanner.MSBuild.exe begin /k:"项目Key" /d:sonar.host.url=http://localhost:自定义端口 - 排查防火墙/安全软件拦截
临时关闭本地防火墙或杀毒软件,重新执行扫描命令。如果扫描成功,需要给SonarQube服务和SonarScanner添加防火墙允许规则,开放对应端口的入站和出站请求。 - 清空代理配置
若本地设置了全局代理,可能导致localhost请求被错误转发。扫描时可以临时禁用代理,或者在扫描命令中添加参数清空代理:SonarScanner.MSBuild.exe begin /k:"项目Key" /d:http.proxyHost= /d:http.proxyPort= - 检查版本兼容性
确认SonarScanner 5.5.3与当前使用的SonarQube版本是否兼容,若版本不匹配,升级或降级其中一方到官方文档标注的兼容版本。
内容的提问来源于stack exchange,提问作者Gerard Jaryczewski
相关产品推荐
相关产品推荐

