【发布时间】:2011-06-08 07:25:11
【问题描述】:
我通过此请求从 Azure REST 管理 API 返回 500 Internal Server Error。为什么?
X509Certificate cert = X509Certificate2.CreateFromCertFile(cert_path);
string uri = String.Format("https://management.core.windows.net/{0}/services/hostedservices/{1}/deploymentslots/staging",
SUBSCRIPTION_ID, SERVICE_NAME);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.Headers.Add("x-ms-version", "2009-10-01");
request.ClientCertificates.Add(managementCertificate);
request.GetResponse();
SUBSCRIPTION_ID 包含从管理门户复制的订阅 ID(只有一个订阅)。 SERVICE_NAME 包含来自唯一托管服务的 DNS 前缀。这些 URI 工作正常:
https://management.core.windows.net/{0}/services/hostedservices
https://management.core.windows.net/{0}/services/hostedservices/{1}?request-detail=true
后一个请求甚至列出了暂存部署并表明一切正常。
证书是根据Microsoft's makecert instructions 使用 Windows SDK 7.1 制作的。部署是手动上传的。
【问题讨论】:
-
不是一个解决方案,但 Lokad.Cloud (code.google.com/p/lokad-cloud) 已经为管理 API 实现了一个 C# 包装器。我们一直在努力让它发挥作用。您可能会在代码中找到一些掘金。希望对您有所帮助。
-
如果您在 7 月 6 日和 7 日遇到此问题,则说明 DNS 存在问题,影响了 Azure 管理服务。当天晚些时候,7 日,它被修复了。不确定这是否也是您的问题,但我在 6 日和 7 日也无缘无故地收到 500 个错误。
-
根据@Richard Hein 的评论,我已向 Microsoft 提交了支持票。
-
@Joannes:我看了一下lokad,但找不到相关的源代码。来源看起来很聪明,但有点神秘。
标签: azure