Azure VMをプログラムで(管理証明書を使用して)起動しようとしています。 httpリクエストを処理しようとしているときにこのエラーが表示された:401 Unauthorized。 (証明書が間違っているときに表示されるエラーではありません)。同じサブスクリプション(ホストされたサービスのリスト)への他のリクエストを試してみました。問題は、仮想マシンで作業する場合にのみ表示されるようです。何が間違っているのか分かりません。ここでは、コードがあります:あなたはX509証明書とAzure Resource Manager (ARM)
APIリクエストを承認/認証しようとしているので、Azure仮想マシンとREST APIに問題がある
static void Main(string[] args)
{
Certificate = new X509Certificate2(Convert.FromBase64String(base64Cer));
string uriFormat = "https://management.azure.com/subscriptions/{my_sub_id}/resourceGroups/{my_resourse_group}/providers/Microsoft.ClassicCompute/virtualMachines/{my_machine_name}/start?api-version={0}";
Uri uri = new Uri(string.Format(uriFormat, Version));
XDocument responseBody;
HttpWebResponse response = InvokeRequest(uri, "POST", out responseBody);
HttpStatusCode statusCode = statusCode = response.StatusCode;
Console.WriteLine("The status of the operation: {0}\n\n", statusCode.ToString());
Console.WriteLine(responseBody.ToString(SaveOptions.OmitDuplicateNamespaces));
Console.Write("Press any key to continue:");
Console.ReadKey();
}
private static HttpWebResponse InvokeRequest(Uri uri, string method, out XDocument responseBody)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.Method = method;
request.Headers.Add("x-ms-version", Version);
request.ClientCertificates.Add(Certificate);
request.ContentType = "application/json";
request.ContentLength = 0;
responseBody = null;
HttpWebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = (HttpWebResponse)ex.Response;
}
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Ignore;
if (response.ContentLength > 0)
{
using (XmlReader reader = XmlReader.Create(response.GetResponseStream(), settings))
{
try
{
responseBody = XDocument.Load(reader);
}
catch
{
responseBody = null;
}
}
}
response.Close();
return response;
}
リクエストを表示できますか?フィドラーなどを使って見逃したことがあるようです。 –
@AlexBelotserkovskiyあなたが求めていることはありますか? http://puu.sh/pcLm4/aed3966230.png –
承認ヘッダーが必要だと言われていますが、どちらが1つですか? –