Windows Azure開発には本当に新しいもので、Windows Azureストレージテーブルにデータを保存する必要があります。WIndows Azureストレージテーブルを削除して再作成する正しい方法=エラー409競合 - コード:TableBeingDeleted
この表は、Azureストレージドライブにある一部のファイルにクイックルックアップメカニズムを提供するためにのみ存在します。
そこで私が起動したアプリケーションでは、このテーブルを取り込む上で計画していた(つまり、Webアプリケーションのグローバルアプリケーションが起動)
ではなく、変更のためにアプリケーション中にドライブに発生する可能性がある変更を、このテーブルを維持しようとしています実行されていません。または、このドライブは単にリソースのvhdであるため、新しい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
テーブルのサイズやその他の要因によっては、長い時間。 – IngisKahn
訂正ありがとうございます – Igorek