C# 无法使用Web API在Azure ARM上创建存储帐户
我试图使用Web API创建一个存储帐户,但它给了我一个异常,该方法是不允许的,如下所示 下面是我的代码:C# 无法使用Web API在Azure ARM上创建存储帐户,c#,asp.net-mvc,azure,web,C#,Asp.net Mvc,Azure,Web,我试图使用Web API创建一个存储帐户,但它给了我一个异常,该方法是不允许的,如下所示 下面是我的代码: string stAccName = "TCStorageAccount" + Guid.NewGuid().ToString().Substring(0, 8); stAccName = stAccName.ToLower(); using (var client = new HttpClient()) { client.Default
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);
}
}
}
}
我还尝试了本线程中讨论的另一种方法,但仍然无法创建存储帐户
任何帮助都将不胜感激。谢谢您出现此错误的原因是因为是一个
PUT
请求,而不是POST
请求
请更改以下代码行:
var response = await client.PostAsync(uri, content);
到
您不应该得到此
方法不允许(405)
错误。您得到此错误的原因是因为是PUT
请求,而不是POST
请求
请更改以下代码行:
var response = await client.PostAsync(uri, content);
到
您不应该得到这个方法不允许(405)
错误
错误为remove,但现在正在获取新异常`{StatusCode:400,ReasonPhase:'Bad Request',版本:1.1'
异常是由于为存储帐户提供了错误的参数造成的。您可以在响应返回后使用以下代码查看详细错误消息
string detailError = await response.Content.ReadAsStringAsync();
下面是一个示例参数,它可以使用我这边的代码成功创建存储帐户
{
"kind": "Storage",
"location": "South Central US",
"sku": {
"name": "Standard_LRS"
}
}
错误为remove,但现在正在获取新异常`{StatusCode:400,ReasonPhase:'Bad Request',版本:1.1'
异常是由于为存储帐户提供了错误的参数造成的。您可以在响应返回后使用以下代码查看详细错误消息
string detailError = await response.Content.ReadAsStringAsync();
下面是一个示例参数,它可以使用我这边的代码成功创建存储帐户
{
"kind": "Storage",
"location": "South Central US",
"sku": {
"name": "Standard_LRS"
}
}
为什么不使用?感谢回复。因为我在使用.net客户端时遇到了一些问题,如本链接中所述。创建存储帐户是一个
PUT
操作,而不是POST
操作。请将您的方法从PostAsync
更改为PutAsync
,这应该可以解决这个问题。为什么不使用?感谢回复。由于我在使用.net客户端时遇到问题,如本链接中所述,创建存储帐户是一个PUT
操作,而不是POST
操作。请将您的方法从PostAsync
更改为PutAsync
,这应该可以解决此问题。非常感谢您的回复。错误已删除,但正在更新ion now`{StatusCode:400,ReasonPhrase:'Bad Request',Version:1.1'任何帮助都将不胜感激。非常感谢您的回复。错误已被删除,但现在正在获取新的异常`{StatusCode:400,ReasonPhrase:'Bad Request',Version:1.1'任何帮助都将不胜感激。感谢感谢感谢感谢感谢感谢感谢,这非常有帮助。