Ich bin wirklich neu in der Windows Azure-Entwicklung und habe eine Anforderung, einige Daten in einer Windows Azure Speichertabelle zu speichern.Die richtige Methode zum Löschen und Neuerstellen einer Windows Azure Storage-Tabelle = Fehler 409 Conflict - Code: TableBeingDeleted
Diese Tabelle wird nur existieren, um einen schnellen Suchmechanismus für einige Dateien bereitzustellen, die sich auf einem azure Speicherlaufwerk befinden.
Deshalb auf Ich hatte geplant, diese Tabelle bei Anwendung bevöl starten (dh in der globalen Anwendung Web-Anwendung starten)
Anstatt zu versuchen, diese Tabelle für Änderungen der Änderungen beizubehalten, die auf das Laufwerk während der Anwendung auftreten könnten Läuft nicht. Oder da es sich bei dieser Festplatte nur um eine VHD von Ressourcen handelt, können wir gelegentlich eine neue VHD hochladen.
Also eher als die Mühe zu versuchen, dies zu erhalten. Es ist ausreichend, dass diese Tabelle bei jedem Anwendungsstart neu erstellt wird.
Ich begann, Code zu erstellen, um zu überprüfen, ob die Tabelle bereits existiert, und wenn sie es löscht, und dann eine neue Tabelle neu erstellen.
var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["AzureStorage"].ConnectionString);
var tableClient = storageAccount.CreateCloudTableClient();
var rmsTable = tableClient.GetTableReference("ResourceManagerStorage");
rmsTable.DeleteIfExists();
rmsTable.Create();
Ich hatte erwartet, dass dies nicht funktionieren würde. Und ich bekomme folgende Fehlermeldung:
The remote server returned an error: (409) Conflict.
HTTP/1.1 409 Conflict
Cache-Control: no-cache
Transfer-Encoding: chunked
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: c6baf92e-de47-4a6d-82b3-4faec637a98c
x-ms-version: 2012-02-12
Date: Tue, 19 Mar 2013 17:26:25 GMT
166
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>TableBeingDeleted</code>
<message xml:lang="en-US">The specified table is being deleted. Try operation later.
RequestId:c6baf92e-de47-4a6d-82b3-4faec637a98c
Time:2013-03-19T17:26:26.2612698Z</message>
</error>
0
Was ist der richtige Weg, dies zu tun? Gibt es ein Ereignis, das abonniert werden kann, um Sie darüber zu informieren, wann die Tabelle gelöscht wurde? Noch weitere Vorschläge, wie Sie das am besten umsetzen können?
Alternativ sein, könnten Sie warten und wieder versuchen, bis das Kommando Create – Igorek
Je nach Größe der Tabelle und viele anderen Faktoren gelingt, sein, dass könnte eine sehr lange Zeit. – IngisKahn
Das ist wahr, danke für die Korrektur – Igorek