【问题标题】:Azure Artifacts - Universal Packages - Error: An unexpected error occurred while trying to push the packageAzure 工件 - 通用包 - 错误:尝试推送包时发生意外错误
【发布时间】:2020-04-04 02:49:33
【问题描述】:

开发人员,

我正在将构建管道输出推送到 Azure Artefacts - 用于完整堆栈 .net 应用程序的通用包。应用程序成功构建并在$(Build.ArtifactStagingDirectory) 中生成输出

希望将所有这些构建输出发布到 UniversalPackages 并让发布管道从那里接管它。

我已经检查了以下内容:

1. 权限 - 项目集合构建服务 - 贡献者角色。

2.任务配置在“UniversalPackages”下方确认

 - task: UniversalPackages@0
    inputs:
      command: 'publish'
      publishDirectory: '$(Build.ArtifactStagingDirectory)/**/*.nupkg'
      feedsToUsePublish: 'internal'
      vstsFeedPublish: '123456fg-test-1234-1234-31161a66dc4d/b92b3313-ab41-4044-test-e94146618efb'
      vstsFeedPackagePublish: 'Text here-Services-Package'
      versionOption: 'minor'
      packagePublishDescription: 'Contains some text here)'
      verbosity: 'Trace'

抱歉 YAML 缩进问题,

下面是管道日志

2020-04-04T02:36:03.9835393Z Publishing package: test, version: 0.0.1 using feed id: 76a3991f-e6fc-767b-a0dc-90e38c54e558, project: 7813b7e3-bbf1-4355-9263-31161a66dc4d 

2020-04-04T02:36:04.0147395Z [command]D:\ABCAgent\_work\_tool\artifacttool\0.2.151\x64\ArtifactTool.exe universal publish --feed 76a3991f-e6fc-767b-a0dc-90e38c54e558 --service https://dev.azure.com/QWERTY/ --package-name test --package-version 0.0.1 --path D:\AzureAgentBuild\_work\1\a --patvar UNIVERSAL_PUBLISH_PAT --verbosity None --description "" --project 7813b7e3-bbf1-4355-9263-31161a66dc4d 

2020-04-04T02:36:09.2875733Z {"@t":"2020-04-04T02:36:08.7883701Z","@m":"[GetDedupManifestArtifactClientAsync] Try 1/5, non-retryable exception caught. Throwing. Details:\r\nNo LastRequestResponse on exception VssServiceResponseException: Forbidden","@i":"b2d31574","@l":"Warning","@x":"Microsoft.VisualStudio.Services.WebApi.VssServiceResponseException: Forbidden\r\n ​

【问题讨论】:

  • 周末前我可以知道这是什么状态吗?
  • G'day,@merlin 伙伴,复活节假期,我会在下周检查并及时通知您。再次感谢!

标签: azure-devops


【解决方案1】:

Microsoft.VisualStudio.Services.WebApi.VssServiceResponseException: 禁止

这个权限错误可以转换为403错误码,表示账号没有足够的操作权限发布包到通用包。

您说您已将“项目集合构建服务”分配给“贡献者”角色。但是,这并不是适用于所有情况的解决方案。它仅在构建管道使用“项目集合构建服务”帐户(一个集合级别服务帐户)时可用。还有一种情况,管道可能使用项目级服务帐号。


您可以使用我在此answer 中分享的方法。检查this 以获得另一个类似的问题和解释。

方法一

请转到Feed settings => Permissions,添加您的项目级构建服务帐户并为其分配Contributor 角色。它的帐户名应该像{Project Name} Build Service ({Org Name})

重新运行你的管道,看看它是否可以成功运行。

方法二

转到项目设置 => 设置,并确保 Limit job authorization scope to current project 已禁用:

只有它被禁用,管道使用的服务帐户是集合级别的。此时,您的原始权限配置现在可用。

【讨论】:

  • 这两种方法都试过了,都没有成功。看起来像网络防火墙问题?我最后禁止的错误..
  • @VarunMaggo,尝试使用托管代理进行验证怎么样?这可以证明是权限不足的问题,还是你的防火墙造成的。
  • 刚刚修复,禁止错误是由于代理在本地服务器上被阻止。我们删除了代理并通过 Azure Express Route 路由了所有数据。问题解决了。
【解决方案2】:

在尝试了管道构建服务的权限后,发现根本原因是代理阻止了通用包并出现了禁止错误。

我们刚刚从本地自托管构建代理中删除了代理,并使用 Azure Express Route 来路由流量。这个简单的更改解决了这个问题。

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    相关资源
    最近更新 更多