Bu koda sahibim:Azure depolama hatası: "Belirtilen blob zaten var", ancak değil!
CloudBlob blob = _container.GetBlobReference(relativefilePath);
blob.Properties.ContentType = contentType;
blob.UploadFromStream(fileContent);
Büyük bir dosyayı (150 MB) geliştirme deposuna yüklediğimde ve şu istisnayı aldım:
Microsoft.WindowsAzure.StorageClient.StorageClientException kullanıcı tarafından işlenemedi code
Mesaj = Belirtilen blob zaten mevcut.
Kaynak = Microsoft.WindowsAzure.StorageClient
Ancak bu doğru değil, dosya mevcut değil. Aslında, bunun neden sorun olduğunu bilmiyorum, her denediğimde, mevcut bir bloğun üzerine yazabilirim. En şaşırtıcı olanı, istisna VS olduğunda, "Düzenlemeyi etkinleştir" i seçerim, yürütme imlecini (sarı ok) kodun 2. satırına taşıdım, yürütürüm ... ve sonra BT ÇALIŞIYORUM !!
Özel durumu yalnızca büyük dosyalarla alıyorum ve nedenini anlamıyorum.
Bu istisna ayrıntısıdır:
Microsoft.WindowsAzure.StorageClient.StorageClientException was unhandled by user code
Message=The specified blob already exists.
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.ExecuteImpl(Func`1 impl)
at Microsoft.WindowsAzure.StorageClient.CloudBlob.UploadFromStream(Stream source, BlobRequestOptions options)
at Microsoft.WindowsAzure.StorageClient.CloudBlob.UploadFromStream(Stream source)
at AzureBlobOperations.AzureFileContainerOperations.PutFile(String relativefilePath, Stream fileContent, String contentType, Boolean createIfNotExists) in C:\Users\valeriano.tortola\Documents\Visual Studio 2010\Projects\TestWithBlobs\AzureBlobOperations\AzureFileOperations.cs:line 61
at TestWithBlobs.Web.Controllers.HomeController.PostFile(HttpPostedFileBase fileUpload) in C:\Users\valeriano.tortola\Documents\Visual Studio 2010\Projects\TestWithBlobs\TestWithBlobs.Web\Controllers\HomeController.cs:line 31
at lambda_method(Closure , ControllerBase , Object[])
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
InnerException: System.Net.WebException
Message=The remote server returned an error: (409) Conflict.
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:
sayesinde, öyle değil mi? – vtortola
Bu doğru. Bulutta bu olmayacak çünkü bir blob "Commit Block List" işlemini açıkça başlattığınız zamana kadar işlenmiyor. –