1

我正在按照本指南使用 Azure 表:https : //docs.microsoft.com/en-us/dotnet/api/overview/azure/data.tables-readme-pre 使用 Azure.Data.Tables NuGet 包.

我可以成功保存一行并在 Azure 门户的存储资源管理器中查看它,但是在尝试进行简单查询时,我回来了:

Unhandled exception. Azure.RequestFailedException: Service request failed.
Status: 501 (Not Implemented)

Content:
{"odata.error":{"code":"NotImplemented","message":{"lang":"en-US","value":"The requested operation is not implemented on the specified resource.\nRequestId:0137da3a-f002-0031-19
d6-5234ab000000\nTime:2021-05-27T08:59:39.8919922Z"}}}

我的查询代码是:

    var entities = _tableClient
        .Query<TableEntity>(t => t.PartitionKey == PartitionKey)
        .ToList();
4

2 回答 2

2

我也遇到了这个确切的问题,虽然它似乎没有在任何地方记录,但以下内容对我有用:

var token = new DefaultAzureCredential();
var tableServiceClient = new TableServiceClient(new Uri($"https://{storageAccountName}.table.core.windows.net/"), token);
var client = tableServiceClient.GetTableClient(tableName);
var entities = client.Query<MyEntity>(filter: $"PartitionKey eq '{partKey}'");

我不太明白为什么直接创建TableClient:

new TableClient(new Uri($"https://{storageAccountName}.table.core.windows.net/{tableName}"), tableName, token);

不起作用,但首先通过 TableServiceClient 对我有用。试试看。

于 2021-10-06T04:00:09.553 回答
0

当我像这样创建客户端时,我在 java SDK 中遇到了这个问题:

new TableClientBuilder()   
        .endpoint("https://{storageAccountName}.table.core.windows.net/{tableName}")
                .sasToken(sas)
                .tableName(tableName)
                .buildClient()

所以我做错了将表名作为端点的一部分并删除它停止了异常。

于 2021-11-18T18:35:00.110 回答