无法在Azure C上创建存储帐户#

时间:2017-08-31 14:46:43

标签: c# asp.net asp.net-mvc azure azure-storage-account

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

Exception

以下是我用于创作的代码

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,并且该版本不支持此软件包。

非常感谢任何帮助。谢谢

2 个答案:

答案 0 :(得分:2)

根据您的说明,我利用支持.NETFramework 4.5的{​​{3}}来检查此问题。我将Location指定为West US,我可以创建我的存储帐户。

  

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

AFAIK,您的帐户名称不是有效的存储帐户名称。存储帐户名称的长度必须为 3到24个字符仅使用数字和小写字母

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

Microsoft.Azure.Management.Storage 6.2.0-preview

enter image description here所述:

  

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

此外,您可以使用支持.NETFramework 4.5的{​​{3}}。

<强>更新

我创建了一个示例Azure regions,并在Microsoft.Azure.Management.Storage.Fluent 1.0.0下定义了用于创建存储帐户的CreateAzureStorageAccount操作。这是测试结果,你可以参考如下:

AspDotNet-MVC-CreateAzureStorageAccount

答案 1 :(得分:0)

我遇到了类似的问题,直接调用REST API。我错过了Standard和LRS之间的下划线。必须完全按照ARM模板中的说明指定AccountType,在这种情况下为Standard_LRS或Standard_GRS。