我正在尝试查询Windows Azure订阅中的托管服务列表。在我的C#程序中,我向URL发送请求
https://management.core.windows.net:443/<my-subscription-id>/services/hostedservices
其中<my-subscription-id>
取自Azure管理门户,并将GUID表示为字符串,如下所示:
abcdef01-2345-4678-90ab-cdef0abcdef0
没有大括号或任何东西。我已经处理过各种证书问题,所以我认为证书没问题。
响应包含此XML:
<Error xmlns="http://schemas.microsoft.com/windowsazure"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Code>BadRequest</Code>
<Message>The hosted service is not valid.</Message>
</Error>
看起来我想要查询特定服务的状态但是错误地指定了其ID。然而MSDN confirms我使用正确的URL来获取服务列表。
我做错了什么,如何解决这个问题?
答案 0 :(得分:1)
我同意@dunnry您应该删除443,此外我建议您仔细检查您是否发送了正确的订阅ID。
如果您正在动态创建请求网址,那么我会在运行时设置断点并检查字符串是否正确。
答案 1 :(得分:0)
原来问题如下。我将大量包含REST调用的代码复制粘贴到界面中:
[ServiceContract(Namespace = ..., ConfigurationName = ...)]
public interface IAzureManagement
{
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = @"{subscriptionId}/services/hostedservices")]
Services GetServices(string subscriptionId);
}
并使用[WebInvoke]
代替[WebGet]
。不知道为什么会有任何不同,但一旦我改为[WebGet]
,问题就会消失。