0

このコードを使用して展開構成を取得しています。

X509Store certificateStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
certificateStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = certificateStore.Certificates.Find(
     X509FindType.FindByThumbprint, certThumb, false);
if (certs.Count == 0)
{
    Console.WriteLine("Couldn't find the certificate with thumbprint:" + certThumb);
    return;
}
certificateStore.Close();

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(
    new Uri("https://management.core.windows.net/" + subID +
            "/services/hostedservices/" + hostedServiceName +
            "/deploymentslots/" + deploymentType));
request.Method = "GET";
request.ClientCertificates.Add(certs[0]);
request.ContentType = "application/xml";
request.Headers.Add("x-ms-version", "2009-10-01");
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    // Parse the web response.
    Stream responseStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(responseStream);

    // Display the raw response.
    Console.WriteLine("Deployment Details:");
    string deployment = reader.ReadToEnd();

    // Close the resources no longer needed.
    responseStream.Close();
}

しかし、暗号化された形式で構成を取得しています。

しかし、Azure PowerShell を実行すると、構成がプレーン テキストで表示されます。

$deployment = Get-AzureDeployment -ServiceName $serviceName -Slot $slot
$deployedConfig = $deployment.Configuration

サービス管理 API を使用する必要があるため、どうすればよいですか?

4

1 に答える 1

2

これは予期される動作です。REST API は、Base64エンコードされた形式でデータを返します。Windows Azure PowerShell は同じ REST API を使用するため、Base64 形式からデータを変換し、人間が判読できる形式で表示します。これは、あなたがしなければならないことでもあります。

したがって、コードでは次のようにします。

string clearText = System.Text.Encoding.UTF8.GetString(
                      Convert.FromBase64String(reader.ReadToEnd()));
于 2013-07-25T06:01:31.197 に答える