ToB企服应用市场:ToB评测及商务社交产业平台
标题:
BaGet进行包管理时symbols上传报错问题的分析及解决
[打印本页]
作者:
盛世宏图
时间:
2022-8-27 01:32
标题:
BaGet进行包管理时symbols上传报错问题的分析及解决
一、问题描述
在使用BaGet进行包管理时中,上传symbols产生400报错:
github action中报错信息
supercisord中报错信息
二、问题分析
控制台中输出的错误信息仅限于请求状态码400,想要找到详细的报错原因,我们需要从
https://github.com/loic-sharma/BaGet/
下载源代码,找到对应symbols上传方法:
BaGet.Web
-> SymbolController
-> async Task Upload(CancellationToken cancellationToken)
复制代码
本地进行代码调试时,并不会出现此错误,可以判断为服务器环境差异导致,在相关的方法中增加跟踪代码:
编译上传服务器后在
BaGet.Core
-> SymbolIndexingService
-> async Task<IReadOnlyList<string>> GetSymbolPackagePdbPathsOrNullAsync(PackageArchiveReader symbolPackage,CancellationToken cancellationToken)
复制代码
方法中捕获异常:
Required environment variable 'HOME' is not set.
三、解决方法
通过在项目运行Supervisord中修改environment参数来进行修复:
environment=ASPNETCORE__ENVIRONMENT=Production,DOTNET_CLI_HOME=/temp
复制代码
增加完DOTNET_CLI_HOME后运行正常。
注意:如果项目运行是在supervisord下进行管理的
[program:local.nuget.keeplive]
command=dotnet BaGet.dll
directory=/srv/website/dotnet/nuget
environment=ASPNETCORE__ENVIRONMENT=Production,DOTNET_CLI_HOME=/temp
user=root
stopsignal=INT
autostart=false
autorestart=true
startsecs=3
stderr_logfile=/var/log/local.nuget.keeplive.err.log
stdout_logfile=/var/log/local.nuget.keeplive.out.log
复制代码
修改配置后记得运行 supervisorctl update 后重启应用
关联issue:
https://github.com/loic-sharma/BaGet/issues/726
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4