Creating the slot issue using the AZURE service management rest API

Answered Creating the slot issue using the AZURE service management rest API

  • Tuesday, February 28, 2012 10:09 AM
     
     

    Hi

    I am using the azure service management API.

    I am getting the exception  "The remote server returned an error: (411) Length Required."

    Code

    public static void Hostedservice()
            {
                try
                {
                    // X.509 certificate variables.
                    X509Store certStore = null;
                    X509Certificate2Collection certCollection = null;
                    X509Certificate2 certificate = null;

                    // Request and response variables.
                    HttpWebRequest httpWebRequest = null;
                    HttpWebResponse httpWebResponse = null;

                    // Stream variables.
                    Stream responseStream = null;
                    StreamReader reader = null;

                    // URI variable.
                    Uri requestUri = null;


                    // The ID for the Windows Azure subscription.
                    string subscriptionId = "my-Sub";

                    // The thumbprint for the certificate. This certificate would have been
                    // previously added as a management certificate within the Windows Azure management portal.
                    string thumbPrint = "add - thumprint";

                    // Open the certificate store for the current user.
                    certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
                    certStore.Open(OpenFlags.ReadOnly);

                    // Find the certificate with the specified thumbprint.
                    certCollection = certStore.Certificates.Find(
                                         X509FindType.FindByThumbprint,
                                         thumbPrint,
                                         false);

                    // Close the certificate store.
                    certStore.Close();

                    // Check to see if a matching certificate was found.
                    if (0 == certCollection.Count)
                    {
                        throw new Exception("No certificate found containing thumbprint " + thumbPrint);
                    }

                    // A matching certificate was found.
                    certificate = certCollection[0];
                    Console.WriteLine("Using certificate with thumbprint: " + thumbPrint);

                    // Create the request.
                    requestUri = new Uri("https://management.core.windows.net/"
                                         + subscriptionId
                                         + "services/hostedservices"
                                         );



                    httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(requestUri);

                    // Add the certificate to the request.
                    httpWebRequest.ClientCertificates.Add(certificate);
                    httpWebRequest.Method = "POST";
                    httpWebRequest.ContentType = "application/xml";
                    // Specify the version information in the header.
                    httpWebRequest.Headers.Add("x-ms-version", "2010-10-28");
                    httpWebRequest.Headers.Add("ServiceName", "dsfsdjkf");
                    httpWebRequest.Headers.Add("Label", "hdjsfufuy");
                    httpWebRequest.Headers.Add("Description", "afdfjhsdjfhkjdshf");
                    httpWebRequest.Headers.Add("Location", "West Europe");





                    // Make the call using the web request.
                    httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                    // Display the web response status code.
                    Console.WriteLine("Response status code: " + httpWebResponse.StatusCode);

                    // Display the request ID returned by Windows Azure.
                    if (null != httpWebResponse.Headers)
                    {
                        Console.WriteLine("x-ms-request-id: "
                        + httpWebResponse.Headers["x-ms-request-id"]);
                    }

                    // Parse the web response.
                    responseStream = httpWebResponse.GetResponseStream();
                    reader = new StreamReader(responseStream);
                    // Display the raw response.
                    Console.WriteLine("Response output:");
                    Console.WriteLine(reader.ReadToEnd());

                    // Close the resources no longer needed.
                    httpWebResponse.Close();
                    responseStream.Close();
                    reader.Close();
                }
                catch (Exception e)
                {

                    Console.WriteLine("Error encountered: " + e.Message);

                    // Exit the application with exit code 1.
                    System.Environment.Exit(1);

                }
                finally
                {
                    // Exit the application.
                    System.Environment.Exit(0);
                }

            }

    Any Help will be appreciated...

                                            

All Replies

  • Tuesday, February 28, 2012 11:12 AM
     
     Answered

    Hi,
    Since your are not sending any information in the POST request body you will need to set the content size to 0:

    httpWebRequest.ContentLength = 0;

    Regards
    Shay


    Blogging on www.codeproject.com/Members/ShayYannay & www.questcloudtools.com