写入 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 存储中没有写入任何数据 - 相同的名称、相同的凭据、相同的代码。
Azure 是否以某种方式阻止此连接(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 字符串更正一切正常。
我有一个简单的 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 存储中没有写入任何数据 - 相同的名称、相同的凭据、相同的代码。
Azure 是否以某种方式阻止此连接(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 字符串更正一切正常。