solos rasgos problemas porque los héroe genios genio fisicas estan enamoran comunes características caracteristicas adultos windows azure azure-storage azure-storage-blobs

windows - rasgos - Excepción de creación de contenedor de blobs



problemas de los genios (10)

Me sale una excepción cada vez que trato de crear un contenedor para el blob

usando 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?


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/


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

La versión REST de esta solicitud no es compatible con 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


Esto a menudo es causado por un nombre de contenedor con letras mayúsculas o el nombre de su cuenta de servicio (AccountName = en el archivo de configuración) contiene letras mayúsculas. Esto es tan bobo. ¿Alguien puede decirle a Microsoft que estos son 101 antipatrones? El entorno de la consola Azure le permite ingresar un nombre de cuenta, "LameDuck" por ejemplo, pero tiene que conectarse con AccountName = lameduck, o le explota en la cara con un mensaje de error ininteligible. Cuando ingresas a LameDuck en la consola de Azure, ni siquiera te avisa que explotará en tu cara si usas precisamente este nombre. Esto es un desperdicio de NUESTRO tiempo, ya que al menos esperamos anti-patrones consistentes, ¿demasiado para esperar? Si no permite conexiones con mayúsculas, ¡no permita que las cuentas se creen con mayúsculas en la consola de Azure! Pero deberías poder manejar mayúsculas en estos días. Jeees!


Las referencias de Blob solo pueden tener caracteres en minúscula. ¿Quizás te encuentres con esto? Yo era.



Según su fragmento de código, parece que está llamando a CreateBlobClient () antes de inicializar storageAccInfo. Me imagino que esto te causaría problemas.



Tengo exactamente el mismo error. Fue debido a que el nombre de mi cuenta en la conexión se escribió con letras mayúsculas .

Ni siquiera podía conectarme a través de Server Explorer en Visual Studio.

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


Tengo la misma excepción. La solución: cambiar 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();


Yo también he pasado horas tratando de resolver este problema. ¡Creo que Richard tiene derecho a su despotricar!

Hay muchas publicaciones sobre el nombre de contenedores que no tienen caracteres en mayúscula, 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 produce exactamente en la misma línea de código, aunque las causas pueden ser diferentes.