当我尝试在我的Windows Azure订阅中列出托管服务时,“托管服务无效”

时间:2012-04-02 15:45:16

标签: windows api exception-handling azure

我正在尝试查询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来获取服务列表。

我做错了什么,如何解决这个问题?

2 个答案:

答案 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],问题就会消失。