尝试显示我的管道之一的所有运行时遇到问题。我正在本地运行 Azure Devops 2020,我得到一个永久旋转的加载对话框。我在其他任何管道中都没有这个问题。似乎如果我在有问题的管道中按运行状态进行过滤,我可以通过它并查看一些运行,但对于我的情况下的其他状态“成功”和“有问题成功”,我继续得到旋转加载符号. 有什么建议吗?
问问题
389 次
1 回答
1
以下是一些建议:
建议一
清理缓存或从其他浏览器加载页面,然后重新启动 Azure DevOps Server 和 SQL Server 计算机。
建议二
创建与受影响管道具有相同设置的新管道。
建议 3
您可以使用 REST API Builds - List来获取管道的所有运行。
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=6.0
因为这个问题的原因可能是runs列表太长了。可以使用 REST API Builds-Delete删除一些不需要的运行,看看能否解决问题。
DELETE https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=6.0
建议 4
您可以参考开发者社区上的类似问题。Jan Selbach 的评论提供了一个解决方案。
1.运行以下SQL脚本查找重复行的LeaseId。请根据您的更改集合数据库名称。
SELECT LeaseId FROM [AzureDevOps_DefaultCollection].[Build].[tbl_RetentionLease] WHERE partitionId > 0 AND LeaseId NOT IN ( SELECT MIN(LeaseId) as LeaseId FROM [AzureDevOps_DefaultCollection].[Build].[tbl_RetentionLease] WHERE PartitionId > 0 GROUP BY OwnerId,RunId )
2.将 LeaseIds 连接成一个逗号分隔的列表
3.通过传入逗号分隔的 LeaseIds 列表来填写 org、project、pat 和 leaseId 来运行以下 PowerShell 脚本(请记住,如果在本地将 $uri 中的https://dev.azure.com更改为您的本地服务器)
$org = "";
$project = "";
$pat = "";
$encoded = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([string]::Format("{0}:{1}", "", $pat)));
$accessToken = "Basic $encoded";
$leaseId = "";
$uri = "https://dev.azure.com/$org/$project/_apis/build/retention/leases?ids=$leaseId&api-version=6.0-preview";
try {
$response = Invoke-RestMethod -uri $uri -method DELETE -Headers @{ Authorization = $accessToken } -ContentType "application/json"
$response
}
catch {
$errorDetails = ConvertFrom-Json $_.ErrorDetails
Write-Host "StatusCode: $($_.Exception.Response.StatusCode)`nExceptionType: $($errorDetails.typeKey)`nExceptionMessage: $($errorDetails.message)"
#StackTrace: $($errorDetails.stackTrace)"
}
于 2020-12-07T03:06:19.057 回答