La forma correcta de eliminar y volver a crear una tabla de almacenamiento de Windows Azure = Error 409 Conflict - Código: TableBeingDeleted

Soy realmente nuevo en el desarrollo de Windows Azure y tengo el requisito de almacenar algunos datos en una tabla de almacenamiento de Windows Azure.

Esta tabla realmente solo existirá para proporcionar un mecanismo de búsqueda rápida a algunos archivos que se encuentran en una unidad de almacenamiento azul.

Por lo tanto, estaba planeando rellenar esta tabla al inicio de la aplicación (es decir, en el inicio global de la aplicación web)

En lugar de intentar mantener esta tabla para los cambios, los cambios que podrían ocurrir en la unidad mientras la aplicación no se está ejecutando. O como esta unidad es solo una vhd de recursos, es posible que en ocasiones carguemos una nueva vhd.

Así que en lugar de la molestia de tratar de mantener esto. es suficiente que esta tabla se reconstruya al iniciar cada aplicación.

Comencé a juntar algo de código para verificar si la tabla ya existe, y si la borra, y luego recrear una nueva tabla.

var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["AzureStorage"].ConnectionString);
var tableClient = storageAccount.CreateCloudTableClient();
var rmsTable = tableClient.GetTableReference("ResourceManagerStorage");
rmsTable.DeleteIfExists();
rmsTable.Create();

Esperaba que esto no funcionara. Y me sale el siguiente error:

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

¿Cuál es la forma correcta de hacer esto? ¿Hay algún evento al que se pueda suscribir para informarle cuándo se eliminó la tabla? ¿Alguna otra sugerencia sobre la mejor manera de implementar esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta