2017-08-31 85 views
1

我想创建从C#在asp.net MVC应用程序中的存储,但它抛出我的错误帐户类型StandardLRS是无效的,因为你可以看到下面无法在Azure C#创建存储帐户

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

任何帮助将不胜感激。由于

回答

1

根据你的描述,我利用Microsoft.Azure.Management.Storage 6.2.0-preview支持.NETFramework 4.5来检查这个问题。我指定LocationWest US,我可以创建我的存储帐户。

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

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

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

enter image description here

由于Locally redundant storage提到如下:

一些应用仅限于中复制数据由于数据治理要求而成为一个国家。配对区域可能在另一个国家。有关区域对的更多信息,请参阅Azure regions

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

UPDATE:

我创建了一个示例AspDotNet-MVC-CreateAzureStorageAccount和定义的CreateAzureStorageAccount行动HomeController.cs下创建存储帐户。下面是测试结果,你可以把它称为如下:

enter image description here

+0

非常感谢您的回复。我从版本5.2.0预览升级DLL Microsoft.Azure.Management.Storage到6.5.0预览和我也有我的升级代码,并根据你的建议,我已经铸成以小写存储帐户名,但现在我有仍然是相同的例外。我曾尝试使用相同的位置,但它仍然给我同样的错误,即帐户类型无效。即使我试图与所有帐户类型,如standardGRS等,但仍然是相同的异常。 –

+0

您创建存储帐户的位置是什么?您是否尝试在Azure Portal上创建存储帐户以缩小此问题的范围? –

+0

我可以在门户网站上使用standardLRS在门户网站上创建存储帐户,而不会出现任何问题,但无法使用c#代码在美国西部,澳大利亚东部创建存储帐户。 –