Исключение создания контейнера блоба

Я получаю исключение каждый раз, когда я пытаюсь создать контейнер для блоба

использование следующего кода


CloudStorageAccount storageAccInfo;
CloudBlobClient blobStorageType;
CloudBlobContainer ContBlob;

blobStorageType = storageAccInfo.CreateCloudBlobClient();

//then I initialize storageAccInfo

ContBlob = blobStorageType.GetContainerReference(containerName);
//everything fine till here ; next line creates an exception

ContBlob.CreateIfNotExist();

Microsoft.WindowsAzure.StorageClient.StorageClientException was unhandled
  Message="One of the request inputs is out of range."
  Source="Microsoft.WindowsAzure.StorageClient"
  StackTrace:
       at Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.get_Result()
       at Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.ExecuteAndWait()
       at Microsoft.WindowsAzure.StorageClient.TaskImplHelper.ExecuteImplWithRetry[T](Func`2 impl, RetryPolicy policy)
       at Microsoft.WindowsAzure.StorageClient.CloudBlobContainer.CreateIfNotExist(BlobRequestOptions options)
       at Microsoft.WindowsAzure.StorageClient.CloudBlobContainer.CreateIfNotExist()
       at WebRole1.BlobFun..ctor() in C:\Users\cloud\Documents\Visual Studio 2008\Projects\CloudBlob\WebRole1\BlobFun.cs:line 58
       at WebRole1.BlobFun.calling1() in C:\Users\cloud\Documents\Visual Studio 2008\Projects\CloudBlob\WebRole1\BlobFun.cs:line 29
       at AzureBlobTester.Program.Main(String[] args) in C:\Users\cloud\Documents\Visual Studio 2008\Projects\CloudBlob\AzureBlobTester\Program.cs:line 19
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.Net.WebException
       Message="The remote server returned an error: (400) Bad Request."
       Source="System"
       StackTrace:
            at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
            at Microsoft.WindowsAzure.StorageClient.EventHelper.ProcessWebResponse(WebRequest req, IAsyncResult asyncResult, EventHandler`1 handler, Object sender)
       InnerException: 

Если бы Вы парни knw, что я делаю неправильно?

41
задан Indy9000 7 May 2013 в 16:54
поделиться

3 ответа

Я предполагаю, что имя контейнера, которое вы используете, нарушает правила именования. Проверьте http://msdn.microsoft.com/en-us/library/dd135715.aspx .

113
ответ дан 27 November 2019 в 00:09
поделиться

Судя по фрагменту кода, похоже, что вы вызываете CreateBlobClient () перед инициализацией storageAccInfo. Я полагаю, это вызовет у вас проблемы.

0
ответ дан 27 November 2019 в 00:09
поделиться

Это часто вызвано тем, что либо имя контейнера содержит буквы в верхнем регистре, либо имя учетной записи службы (AccountName= в конфигурационном файле) содержит буквы в верхнем регистре. Это просто отстой. Кто-нибудь может сказать Microsoft, что это 101 антипаттерн. Среда консоли Azure позволяет ввести имя учетной записи, например, "LameDuck", но вы должны подключиться с AccountName=lameduck, иначе это приведет к непонятному сообщению об ошибке. Когда вы вводите LameDuck в консоли Azure, она даже не предупреждает вас о том, что она взорвется, если вы используете именно это имя. Это пустая трата НАШЕГО времени, поскольку мы, по крайней мере, ожидаем последовательных антипаттернов - слишком многого ожидать? Если вы не разрешаете соединения с именами в верхнем регистре, то не разрешайте создавать учетные записи с именами в верхнем регистре в консоли Azure! Но в наши дни вы должны уметь работать с верхним регистром. Jeees!

2
ответ дан 27 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: