0

Get Role URL を使用して役割を取得しようとして、Azure で概念実証作業を行っています。

https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>/roles/<role-name>

次に、ロールの更新 URL を使用してロールを更新します。

https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>/roleinstances/<role-name>

これらの URL は両方とも、msdn ページから直接取得したものです。GET 要求が機能し、管理コンソールに表示されるものと一致する XML を取得します。次に、要素を xml に追加し、更新 URL で PUT を使用して送り返すと、200 応答が返されますが、管理コンソールに変更が表示されません。また、意味不明なメッセージを送信してもエラー メッセージは表示されません。私は C# から接続していますが、同僚は、これで応答を得ることができると提案しました:

var response = (HttpWebResponse)request.GetResponse();
Console.WriteLine(response.ToString());

しかし、それでは 404 エラーが発生します。

更新をコミットするための追加の手順はありますか? また、msdn が言及している応答を確認するにはどうすればよいですか?

4

2 に答える 2

0

2 つの提案:

  1. 簡単な SMAPI 作業を行うときは、AzureTools を使用します ( http://blogs.msdn.com/b/kwill/archive/2013/08/26/azuretools-the-diagnostic-utility-used-by-the-windows- azure-developer-support-team.aspx )。具体的には、「Service Management REST API」の下の「その他のツール」セクションを参照してください。これにより、完全な応答が表示されます。

  2. 応答を取得する方法に関する質問に答えるには (txtSMAPIResponse は、AzureTools が応答情報を配置する場所です)。

            System.IO.Stream receiveStream;
        System.IO.StreamReader readStream;
        Encoding encode;
    
        HttpWebResponse response = null;
        try
        {
            response = (HttpWebResponse)request.GetResponse();
        }
        catch (WebException ex)
        {
            txtSMAPIRequest.Text = request.Headers.ToString();
            txtSMAPIResponse.Text = ex.Message + Environment.NewLine + Environment.NewLine + ex.Response.Headers.ToString();
            try
            {
                receiveStream = ex.Response.GetResponseStream();
                encode = System.Text.Encoding.GetEncoding("utf-8");
                // Pipes the stream to a higher level stream reader with the required encoding format. 
                readStream = new System.IO.StreamReader(receiveStream, encode);
                txtSMAPIResponse.Text += readStream.ReadToEnd();
    
                // Releases the resources of the response.
                response.Close();
                // Releases the resources of the Stream.
                readStream.Close();
            }
            catch
            {
            }
            return;
        }
    
        txtSMAPIRequest.Text = request.Method + " " + request.RequestUri + " " + request.ProtocolVersion + Environment.NewLine + Environment.NewLine;
        txtSMAPIRequest.Text += request.Headers.ToString();
        txtSMAPIResponse.Text = (int)response.StatusCode + " - " + response.StatusDescription + Environment.NewLine + Environment.NewLine;
        txtSMAPIResponse.Text += response.Headers + Environment.NewLine + Environment.NewLine;
    
        receiveStream = response.GetResponseStream();
        encode = System.Text.Encoding.GetEncoding("utf-8");
        // Pipes the stream to a higher level stream reader with the required encoding format. 
        readStream = new System.IO.StreamReader(receiveStream, encode);
        txtSMAPIResponse.Text += readStream.ReadToEnd();
    
        // Releases the resources of the response.
        response.Close();
        // Releases the resources of the Stream.
        readStream.Close();
    }
    
于 2013-10-03T20:52:09.373 に答える