NuGet推送提示‘包已推送’但未上传至Jfrog Artifactory的问题
NuGet包推送至Artifactory显示成功但实际无包的问题排查
可能的失败原因
- 权限不一致:构建机器使用的
username:password仅具备仓库读取权限,无写入权限;本地凭据拥有完整推送权限,因此能成功上传。 - NuGet与Artifactory兼容性问题:部分NuGet版本在与Artifactory交互时,仅验证了仓库可达性(返回OK),但未正确完成包上传流程,导致包未实际写入仓库。
- 网络环境限制:构建机器所在网络的代理或防火墙拦截了包的传输数据,表面请求返回OK,但实际包内容未抵达Artifactory服务器。
- 包版本或仓库规则冲突:Artifactory仓库中已存在相同版本的包(可能是缓存的无效包),或仓库配置了版本唯一性、包大小限制等规则,静默拒绝新包推送,但NuGet未返回错误提示。
- 仓库类型配置错误:推送目标是Artifactory的虚拟仓库(仅用于聚合拉取),而非支持推送的本地仓库;或者仓库的推送权限未正确开启。
详细日志获取方法
- 升级NuGet日志级别:将命令中的
-verbosity detailed替换为-verbosity debug,获取完整的HTTP请求和响应细节:
日志会包含请求头、响应体等信息,可直接看到Artifactory对推送请求的实际处理结果。nuget.exe push .\MyPackage.2021.10.2.202411201.nupkg username:password -Source https://myserver/artifactory/api/nuget/myrepo -timeout 99999 -verbosity debug - 查看Artifactory服务器日志:登录Artifactory后台,进入Admin > Logs,查看
request.log或nuget-requests.log,其中记录了所有NuGet请求的完整处理流程,包括是否存在拒绝操作及具体原因。 - 使用curl直接测试:在构建机器上用curl模拟推送,获取最原始的HTTP交互信息:
curl -u username:password -X PUT -T .\MyPackage.2021.10.2.202411201.nupkg "https://myserver/artifactory/api/nuget/myrepo/MyPackage.2021.10.2.202411201.nupkg" -v-v参数会输出完整的请求、响应头部和状态,帮助快速定位网络或权限问题。
内容的提问来源于stack exchange,提问作者Shahyad Sharghi
相关产品推荐
相关产品推荐

