写入 Azure Table 存储 - 本地和云的不同行为

Write Azure Table Storage - Different behaviour local and cloud

我有一个简单的 Azure 函数,它定期将一些数据写入 Azure Table 存储。

var storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("mystorage","xxxxx"),true);

var tableClient = storageAccount.CreateCloudTableClient();

myTable = tableClient.GetTableReference("myData");

TableOperation insertOperation = TableOperation.Insert(data);

myTable.ExecuteAsync(insertOperation);

代码在 Visual Studio 本地运行良好,所有数据都正确写入位于 Table 的 Azure 存储中。 但是,如果我将这段代码 1:1 作为 Azure 函数部署到 Azure 中,代码也运行良好,没有任何异常,并且日志记录显示,它贯穿每一行代码。

但是 Table 存储中没有写入任何数据 - 相同的名称、相同的凭据、相同的代码。

A​​zure 是否以某种方式阻止此连接(Azure 中的 AzureFunc > Azure Table 存储),与“本地 AzureFunc > Azure Table 存储)相比?

Is Azure blocking this connection (AzureFunc in Azure > Azure Table Storage) in some way in contrast to "Local AzureFunc > Azure Table Storage)?

不,它不是 azure 正在阻止连接或任何类似的东西。

您必须 等待 您正在使用 ExecuteAsync 进行的 table 操作,因为程序中的控件在没有它的情况下移动方法正在完成。将最后一行代码更改为

await myTable.ExecuteAsync(insertOperation);

看看Because this call is not awaited, the current method continues to run before the call is completed

问题出在行键上:

我使用 DateTime.Now 作为行键(因为 table 存储不提供自动增量值)。 我的本地格式是“1.1.2019 18:19:20”,而服务器的格式是“1/1/2019 ...”

并且行键字符串中似乎不允许使用“/”。

现在,格式化 DateTime 字符串更正一切正常。