Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用Web API在Azure ARM上创建存储帐户_C#_Asp.net Mvc_Azure_Web - Fatal编程技术网

C# 无法使用Web API在Azure ARM上创建存储帐户

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

我试图使用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);
                }
           }
       }
   }
我还尝试了本线程中讨论的另一种方法,但仍然无法创建存储帐户


任何帮助都将不胜感激。谢谢

您出现此错误的原因是因为是一个
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'任何帮助都将不胜感激。感谢感谢感谢感谢感谢感谢感谢,这非常有帮助。