I\'m developing an ASP.Net MVC 4 app and I\'m using Azure Blob to store the images that my users are going to upload. I have the following code:
var storag
Make sure your versions of the storage libraries and storage emulator aren't "out of sync". I updated my libraries but didn't update the emulator to the latest version and got this exact situation.
The simple solution to this problem is, container should always be in lower case. I had the same issue, which got resolved after changing container name to all in lower case.
it's necessary view the httpstatusmessage in exception: in my case the error was because The requested URI does not represent any resource on the server.
so i've seen that my BlobContainerName
not contains the right container (or not exists)
CloudBlobContainer container = > blobClient.GetContainerReference(BlobContainerName);
other case i've seen is the wrong name of container. blobcontainername that must be a name like "mycontainer1" or "mycontainer2" and so on
here the code to add container
try
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference(BlobContainerName);
container.CreateIfNotExists();
//creo se non esiste e aggiungo i permessi
BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
containerPermissions.PublicAccess = BlobContainerPublicAccessType.Blob;
container.SetPermissions(containerPermissions);
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference(Filename);
blockBlob.UploadFromStream(inFileUpload);
}
catch (Exception ex)
{
return "";
}
I actually ended up finding the problem.
My problem was that the blob storage emulator would not start (the other emulators would start and I missed the blob). The problem ended up being that the port 10000 (default blob emulator port) was already being used by another software. I used Netstat
cmd tool to see which software it was, killed it and its now working like a charm!!! Thanks everyone!!
If you have just updated the WindowsAzure.Storage nuget package and your app started crashing with http error 400 bad request :
In my case it happened when I updated to 8.2.1 and my local emulator was version 5.1.
My solution is this :
When I downloaded Storage Emulator 5.2 and upgraded from 5.1 the errors stopped. Such an error happened several times to me already.
My humble request if anybody from Microsoft Azure Storage Emulator team reads this - Please add a check for development mode and throw a meaningful exception with the message like - "You have Azure Storage Emulator version X.Y.Z installed. In order to use the current WindowsAzure.Storage library **V.V.V with Azure Emulator you need to install version Z.Z.Z of the emulator from this link".** or whatever you consider useful.
This kind of problem have wasted several hours of my time and I suppose the same happened to thousands of developers around the world and still this exception sits there - for more than 4 years!
I just had this issue and fixed it.
My container name was fine, but I accidentally had the AccountName parameter in my connection string capitalized. This led to my 400.