我正在尝试使用 Web API 创建存储帐户,但它给了我一个异常(exception),即方法不允许,如下所示
下面是我的代码:
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);
}
}
}
}
我还尝试了此线程 Unable to create Storage account on 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)
错误。
关于c# - 无法使用 Web API 在 Azure ARM 上创建存储帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46078440/