2016-11-30 2 views
0

Ich versuche, den Inhalt eines Azure Append Blobs mit DownloadText() herunterzuladen. Die Funktion wirft eine Ausnahme gelegentlich:Der Remote-Server hat einen Fehler zurückgegeben: (412) Die mit HTTP-bedingten Headern angegebene Bedingung ist nicht erfüllt.

Der Remoteserver hat einen Fehler zurückgegeben: (412) Die Bedingung mit bestimmten HTTP-Header bedingte (n) nicht erfüllt ist ..

Obwohl ich keinen Code schreiben hätte zu verwalten Parallelität, also sollte die Standardlogik "Letzte Gewinne" angewendet werden. Auf den Blob-Speicher wird von einer Web-App und API zugegriffen, diese Ausnahme wird jedoch nur gelegentlich in der Web-App ausgelöst.

Antwort

1

Laut der Fehlermeldung scheint es, dass Blob-Inhalt geändert wurde, wenn Sie versuchen, den Blob-Inhalt herunterzuladen. Der ETag des Blobs wird automatisch geändert, wenn der Blob geändert wird. Versuchen Sie bitte, den folgenden Code zu verwenden, um es zu überprüfen und herauszufinden. Weitere Informationen zu den bedingten Speicheroperationen finden Sie in der document.

 CloudAppendBlob appendBlob = container.GetAppendBlobReference("myAppendBlob"); 
     appendBlob.FetchAttributes(); 
     var etag = appendBlob.Properties.ETag; 
     try 
     { 
      appendBlob.DownloadText(Encoding.UTF8, AccessCondition.GenerateIfMatchCondition(etag)); 
     } 
     catch (Exception) 
     { 
      appendBlob.FetchAttributes(); 
      var updateEtag = appendBlob.Properties.ETag; 
      Console.WriteLine($"Original:{etag},Updated:{updateEtag}"); 
      //To Do list 
      //appendBlob.DownloadText(Encoding.UTF8, AccessCondition.GenerateIfMatchCondition(updateEtag)); 
     } 
+0

Vielen Dank für Ihre Antwort. Tritt das bei dem Versuch, DownloadText() von mehreren AJAX-Anrufen gleichzeitig zu verwenden, vor? –

+0

Wenn die Ressource von mehreren Apps aufgerufen oder geändert wird, versuchen Sie bitte, sicherzustellen, dass die ursprünglichen Dateien nicht geändert werden. –

Verwandte Themen