我目前正在为 Windows Azure 的托管服务进行自动化部署过程。.cspkg
和文件的创建.cscfg
使用调用msbuild
. 现在我正在编写一个小型 .NET 控制台应用程序,它应该使用管理 REST API 将这些文件部署到 Azure。
API 本身没有问题。我可以使用我的一个管理证书向 API 发送请求。我将.cspkg
文件上传到 Azure BLOB 存储,然后尝试调用Upgrade Deployment
. 但每次我尝试时,我都会收到“400 Bad Request”响应,指出未找到带有指纹 xy 的证书。此证书是我用于自定义域 (DNS CNAME) 的 HTTPS的 SSL 证书(不是管理证书)。
现在,整个事情变得有趣了:
当我在 Visual Studio 中使用“发布”命令部署文件时,没有问题。(我比较了VS 和我的输出中的.cscfg
/文件:除了一些 GUID 之外,它们是相同的)。此外,使用浏览器中的 Silverlight Management,我什至可以上传无法使用 API 上传的生成文件。.cspkg
msbuild
当我使用调用检索所有证书的列表时List Certificates
,据说丢失的证书显然在那里。我还可以使用Get Certificate
调用检索其数据。
那么为什么 Azure 在使用Upgrade Deployment
调用时一直告诉我找不到证书呢?有没有人经历过类似的事情?有人给我提示吗?提前致谢。
PS:这是 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>
PPS:是的,回复中的词是certitficate
,不是certificate
。