我真的很新的Windows Azure开发,并要求存储在Windows Azure存储表中的一些数据。正确的方式来删除和重新创建一个WIndows Azure存储表=错误409冲突 - 代码:TableBeingDeleted
该表格的真正目的只是为位于Azure存储驱动器上的某些文件提供快速查找机制。
因此我打算在应用填充此表启动(即Web应用程序的全球应用程序启动)
而不是试图维持该表的变化可能发生在驱动器,而应用程序的变化没有运行。或者,因为这个驱动器只是资源的一部分,我们可能偶尔会上传一个新的vhd。
所以,而不是试图维持这一点的麻烦。在每次应用程序启动时重建此表就足够了。
我开始把一些代码放在一起来检查表是否已经存在,以及它是否删除它,然后重新创建一个新表。
var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["AzureStorage"].ConnectionString);
var tableClient = storageAccount.CreateCloudTableClient();
var rmsTable = tableClient.GetTableReference("ResourceManagerStorage");
rmsTable.DeleteIfExists();
rmsTable.Create();
我原本以为这是行不通的。我得到以下错误:
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
这样做的正确方法是什么?是否有可以订阅的事件,以便在表格被删除时通知您?还有关于实施这个最佳方式的其他建议吗?
或者,您可以等待并重试,直到创建命令成功 – Igorek 2013-03-19 20:02:22
根据表的大小和许多其他因素,这可能是一个非常长时间。 – IngisKahn 2013-03-19 20:14:50
这是真的,感谢纠正 – Igorek 2013-03-19 20:16:56