2

我正在尝试在 asp.net MVC 应用程序中从 c# 创建一个存储,但它会抛出错误帐户类型 StandardLRS 无效,如下所示

例外

下面是我用于创建的代码

string token = GetAccessToken("sub id", "app name", "tenant id");
                var Credentials = new TokenCredentials(token);

                var resourceManagementClient = new ResourceManagementClient(Credentials);
                resourceManagementClient.SubscriptionId = "sub id";

                var storageProvider = resourceManagementClient.Providers.Register("Microsoft.Storage");

                var storageManagementClient = new StorageManagementClient(Credentials);
                storageManagementClient.SubscriptionId = "sub id";

                string rgName = "TimedCloudRG" + location.Trim().Replace(" ", string.Empty);

                var resourceGroup = new Microsoft.Azure.Management.Resources.Models.ResourceGroup
                {
                    Location = location
                };
                var rgResult = resourceManagementClient.ResourceGroups.CreateOrUpdate(rgName, resourceGroup);

                Microsoft.Azure.Management.Storage.Models.Sku DefaultSku = new Microsoft.Azure.Management.Storage.Models.Sku(Microsoft.Azure.Management.Storage.Models.SkuName.StandardLRS);
                Microsoft.Azure.Management.Storage.Models.Kind DefaultKind = Microsoft.Azure.Management.Storage.Models.Kind.Storage;                       
                Microsoft.Azure.Management.Storage.Models.StorageAccountCreateParameters parameters = new Microsoft.Azure.Management.Storage.Models.StorageAccountCreateParameters()
                {
                    Kind = DefaultKind,
                    Sku = DefaultSku,                    
                    Location = rgResult.Location
                };


                string stAccName = "TCStorageAccount"+Guid.NewGuid().ToString().Substring(0, 8);

                var storageAccount = await storageManagementClient.StorageAccounts.CreateAsync(rgName, stAccName, parameters);

令人惊讶的是,当我在控制台应用程序上运行它时它运行良好。我也尝试安装 Microsoft.Azure.Management.Storage.Fluent 包,但无法安装,因为我的项目 .net 框架选择为 4.5.1,并且该版本不支持此包。

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

4

2 回答 2

2

根据您的描述,我利用支持检查此问题的 Microsoft.Azure.Management.Storage 6.2.0-preview 。.NETFramework 4.5我指定了Locationas West US,我可以创建我的存储帐户。

string stAccName = "TCStorageAccount"+Guid.NewGuid().ToString().Substring(0, 8);

AFAIK,您的帐户名称不是有效的存储帐户名称。存储帐户名称的长度必须介于 3 到 24 个字符之间,并且只能使用数字和小写字母

我尝试在 Azure Portal 上创建存储帐户,无意中发现了以下结果:

在此处输入图像描述

正如下面提到的本地冗余存储

由于数据治理要求,某些应用程序仅限于在一个国家/地区内复制数据。配对区域可能位于另一个国家/地区。有关区域对的详细信息,请参阅Azure 区域

此外,您可以使用Microsoft.Azure.Management.Storage.Fluent 1.0.0,它支持.NETFramework 4.5.

更新:

我创建了一个示例AspDotNet-MVC-CreateAzureStorageAccount并在HomeController.cs下定义了CreateAzureStorageAccount创建存储帐户的操作。这是测试结果,您可以参考如下:

在此处输入图像描述

于 2017-09-01T03:34:04.667 回答
0

我遇到了直接调用 REST API 的类似问题。我错过了标准和 LRS 之间的下划线。AccountType 需要完全按照 ARM 模板中的说明进行指定,在本例中为 Standard_LRS 或 Standard_GRS。

于 2019-03-26T15:05:42.243 回答