[英]Unable to create Storage account on Azure ARM using Web API
我正在尝试使用Web API创建一个存储帐户,但这给了我一个例外,该方法不允许,如下所示
下面是我的代码:
string stAccName = "TCStorageAccount" + Guid.NewGuid().ToString().Substring(0, 8);
stAccName = stAccName.ToLower();
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
{
var payloadText = JsonConvert.SerializeObject(parameters);
writer.Write(payloadText);
writer.Flush();
stream.Flush();
stream.Position = 0;
using (var content = new StreamContent(stream))
{
content.Headers.Add("Content-Type", "application/json");
content.Headers.Add("x-ms-version", "2016-12-01");
Uri uri = new Uri(String.Format("https://management.azure.com/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Storage/storageAccounts/{2}?api-version=2016-12-01", "subid", "resource group name", stAccName));
var response = await client.PostAsync(uri, content);
if (!response.IsSuccessStatusCode)
{
throw new InvalidOperationException(response.ReasonPhrase);
}
}
}
}
我也尝试使用此线程中讨论的另一种方法无法在Azure C#上创建存储帐户,但仍然无法创建存储帐户。
任何帮助,将不胜感激。 谢谢
您收到此错误的原因是因为“ Create Storage Account
是一个PUT
请求,而不是一个POST
请求。
请更改以下代码行:
var response = await client.PostAsync(uri, content);
至
var response = await client.PutAsync(uri, content);
并且不应出现此Method Not Allowed (405)
错误Method Not Allowed (405)
错误。
错误已删除,但现在获取新的异常`{StatusCode:400,ReasonPhrase:'Bad Request',Version:1.1'
异常是由于为存储帐户提供了错误的参数引起的。 响应返回后,您可以使用以下代码查看详细错误消息。
string detailError = await response.Content.ReadAsStringAsync();
这是一个示例参数,可以使用我这一边的代码成功创建一个存储帐户。
{
"kind": "Storage",
"location": "South Central US",
"sku": {
"name": "Standard_LRS"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.