api - 'Den hostede tjeneste er ikke gyldig', når jeg forsøger at liste hosted service i mit Windows Azure abonnement

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at forespørge listen over hostede tjenester i mit Windows Azure-abonnement. I mit C # -program sender jeg en anmodning til URL


https://management.core.windows.net:443/<my-subscription-id>/services/hostedservices


hvor <my-subscription-id> er taget fra Azure Management portal og repræsenterer en GUID som en streng som denne:


abcdef01-2345-4678-90ab-cdef0abcdef0


uden beslag eller noget. Jeg har allerede behandlet alle slags certifikatproblemer, så jeg formoder at certifikater er okay.


Svaret indeholder denne 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>


Hvilket ligner jeg ønskede at forespørge status for en bestemt tjeneste, men angav sin id forkert. Men MSDN bekræfter, at jeg bruger den rigtige webadresse for at få listen over tjenester. [9]


Hvad gør jeg forkert, og hvordan løser jeg dette?

Bedste reference


Jeg er enig med @dunnry, at du skal fjerne 443 og desuden foreslår jeg, at du dobbelttjekker at du sender det rigtige abonnements-id.


Hvis du 'dynamisk opretter forespørgselsadressen', så sætter jeg 'breakpoint' på kørselstidspunktet og kontrollerer, at strengen er korrekt.

Andre referencer 1


Det viser sig, at problemet var følgende. Jeg kopierede klistret et ton kode, der indpakket REST-opkaldet til en grænseflade:


[ServiceContract(Namespace = ..., ConfigurationName = ...)]
public interface IAzureManagement
{
    [OperationContract]
    [WebInvoke(Method = "GET", UriTemplate = @"{subscriptionId}/services/hostedservices")]
    Services GetServices(string subscriptionId);
}


og brugte [WebInvoke] i stedet for [WebGet]. Ingen anelse om hvorfor det gør nogen forskel, men når jeg skiftede til [WebGet] gik problemet væk.