gpt4 book ai didi

api - 无法使用管理 REST API 升级 Azure 部署(SSL 证书问题)

转载 作者:行者123 更新时间:2023-12-04 13:42:06 25 4
gpt4 key购买 nike

我目前正在为 Windows Azure 托管服务开发自动部署流程。使用 msbuild 调用可以完美创建 .cspkg.cscfg 文件。现在,我正在编写一个小型 .NET 控制台应用程序,该应用程序应使用管理 REST API 将这些文件部署到 Azure。

API本身没有问题。我可以使用我的管理证书之一向 API 发送请求。我将 .cspkg 文件上传到 Azure BLOB 存储,然后尝试调用升级部署。但每次尝试时,我都会收到“400 Bad Request”响应,指出未找到带有指纹 xy 的证书。此证书是我用于自定义域 (DNS CNAME) 的 HTTPS 的 SSL 证书(不是管理证书)。

现在,整件事变得有趣了:

当我在 Visual Studio 中使用“发布”命令部署文件时,没有问题。 (我比较了 VS 中的 .cscfg/.cspkg 文件和我的 msbuild 输出:除了一些 GUID 之外,它们是相同的) 。此外,使用浏览器中的 Silverlight 管理工具,我什至可以上传使用 API 无法上传的生成文件。

当我使用List Certificates调用检索所有证书的列表时,据说丢失的证书显然在那里。我还可以使用 获取证书 调用检索其数据。

那么为什么 Azure 在使用升级部署调用时不断告诉我找不到证书?有人经历过类似的事情吗?有人给我提示吗?提前致谢。

P.S.:这是 Azure 在我使用 API 时所说的内容:

<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Code>BadRequest</Code>
<Message>The certitficate with thumbprint 7b232c4a2d6e3deadbeef120d5dbc1fe8049fbea was not found.</Message>
</Error>

P.P.S.:是的,响应中的单词是certificate,而不是certificate

最佳答案

好的,使用 List Subscription Operations 后API 调用找出 Visual Studio 调用什么来部署应用程序,我找到了解决方案。

事实证明,我用于 API 请求的 URL 是错误的,但是:恕我直言,我责怪 Microsoft 糟糕地记录了其 Azure Management API .

在他们的文档中,他们写的要使用的 URL 是:

https://management.core.windows.net/<subscription-id>/services/hostedservices/<service-name>/deploymentslots/<deployment-slot>/?comp=upgrade

描述如下:

To generate the request URI, replace <subscription-id> with your subscription ID, <service-name> with the name of your service, <deployment-slot> with staging or production, and <deployment-name> with the unique name of your deployment.

他们忘记提及的是,您必须使用服务的 DNS 名称,而不是名称!他们至少可以返回一条适当的错误消息,告诉您服务名称无效、不存在或不属于您的订阅 ID,而不是提示某些证书问题。

谢谢 Microsoft,这花了我两天多的时间。

关于api - 无法使用管理 REST API 升级 Azure 部署(SSL 证书问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10242893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com