我真的很新的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