gpt4 book ai didi

c# - 删除并重新创建 Windows Azure 存储表的正确方法 = 错误 409 冲突 - 代码 : TableBeingDeleted

转载 作者:IT王子 更新时间:2023-10-29 04:52:45 25 4
gpt4 key购买 nike

我对 Windows Azure 开发非常陌生,并且需要在 Windows Azure 存储表中存储一些数据。

该表的存在实际上只是为了向位于 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

这样做的正确方法是什么?是否有可以订阅的事件来让您知道表何时被删除?关于实现这一点的最佳方法还有其他建议吗?

最佳答案

来自MSDN :“请注意,删除表可能至少需要 40 秒才能完成。如果在删除表时尝试对表执行操作,则服务会返回状态代码 409(冲突),并附带其他错误信息,指示该表正在删除。”

处理这个问题的唯一方法是创建一个具有不同名称的表。这可能就像在您的姓名后附加时间戳或 GUID 一样简单。只是要小心清理垃圾。

关于c# - 删除并重新创建 Windows Azure 存储表的正确方法 = 错误 409 冲突 - 代码 : TableBeingDeleted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com