Excepción de creación de Blob container


Recibo una excepción cada vez que intento crear un contenedor para el blob

Utilizando el siguiente código


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: 

¿Saben qué es lo que estoy haciendo mal ?

Author: Indy9000, 2010-04-12

10 answers

Mi conjetura es que el nombre del contenedor que está utilizando viola las reglas de nomenclatura. Comprobar http://msdn.microsoft.com/en-us/library/dd135715.aspx .

 112
Author: smarx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-12 18:33:03

Tengo la misma excepción. La solución: cambie los nombres de los contenedores a minúsculas.

Con excepción:

CloudBlobContainer container = blobClient.GetContainerReference("Script");
container.CreateIfNotExist();

Funciona bien:

CloudBlobContainer container = blobClient.GetContainerReference("script");
container.CreateIfNotExist();
 14
Author: unconnected,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-20 00:06:15

En mi caso, el emulador estaba desactualizado. Después de detener el emulador e instalar el último SDK, el problema desapareció.

Puede obtener el último SDK desde aquí: https://azure.microsoft.com/en-us/downloads /

 3
Author: Talon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-24 09:27:46

Esto a menudo es causado por un nombre de contenedor con letras mayúsculas en él, o su nombre de cuenta de servicio (AccountName= en el archivo de configuración) contiene letras mayúsculas. Esto es TAN patético. Puede alguien decirle a Microsoft que estos son 101 anti-patrones. El entorno de Azure Console le permite ingresar un nombre de cuenta, "LameDuck" por ejemplo, pero debe conectarse con AccountName=lameduck, o le explotará en la cara con un mensaje de error ininteligible. Cuando entras en LameDuck en el Azure Console, ni siquiera te advierte que explotará en tu cara si usas precisamente este nombre. Esto es una pérdida de NUESTRO tiempo, ya que al menos esperamos anti-patrones consistentes too ¿demasiado para esperar? Si no permite conexiones con mayúsculas, no permita que las cuentas se creen con nombres en mayúsculas en la consola de Azure. Pero usted debe ser capaz de manejar mayúsculas en estos días. Jeees!

 2
Author: Richard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-21 14:16:48

Tengo exactamente el mismo error. Se debió a que el nombre de mi cuenta en la cadena de conexiones estaba escrito con letras mayúsculas.

Ni siquiera pude conectarme a través del Explorador de servidores en Visual Studio.

Después de cambiar el nombre a en minúsculas funcionó perfectamente.

 2
Author: Jonas Stensved,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-13 23:50:35

Yo también he pasado horas tratando de resolver este problema - creo que Richard tiene derecho a su diatriba!

Hay muchas publicaciones sobre el nombre de los contenedores que no tienen caracteres en mayúsculas, etc. Sin embargo, he encontrado que el nombre de referencia de blob también debe cumplir. De hecho, tuve tres violaciones:

  1. Al igual que Richard, tenía letras mayúsculas en el nombre de mi cuenta en el archivo de configuración.
  2. Tenía letras mayúsculas en el nombre del contenedor.
  3. Tenía un espacio en el nombre de referencia de blob.

Estos errores compuestos son muy difíciles de rastrear si los mensajes de error no tienen sentido. El problema es que el error se lanza exactamente en la misma línea de código, aunque las causas pueden ser diferentes.

 2
Author: Simon Poulton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-13 23:50:56

Basado en tu fragmento de código, parece que estás llamando a CreateBlobClient() antes de inicializar storageAccInfo. Me imagino que esto te causaría problemas.

 0
Author: David Makogon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-12 09:54:13

Mi problema era que el emulador en realidad no se estaba iniciando y no me había dado cuenta de eso. http://mhuensch.azurewebsites.net/azure-storage-wont-start /

No se estaba iniciando porque el emulador usa el puerto 10000 y hubo un conflicto con ese puerto.

 0
Author: Jim W,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-17 17:25:52

Las referencias de blobs solo pueden tener caracteres en minúsculas - ¿quizás te estás topando con esto? Lo estaba.

 0
Author: Jorge Aguirre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-22 01:16:43

En mi caso, encontré que el Emulador de almacenamiento debería actualizarse, y me di cuenta de que capturaba la excepción StorageException y comprobaba la propiedad RequestInformation que tenía, a su vez, otra propiedad de cadena llamada HttpStatusMessage. Ese mensaje decía:

La versión REST de esta solicitud no está soportada por esta versión del Emulador de almacenamiento. Actualice el emulador de almacenamiento a la última versión. Consulte la siguiente URL para obtener más información: http://go.microsoft.com/fwlink/?LinkId=392237

 0
Author: Eugenio Miró,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-11 21:50:59