Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure表存储模拟器将SOH字符附加到分区和行键_C#_Http Status Code 404_Emulation_Azure Table Storage - Fatal编程技术网

C# Azure表存储模拟器将SOH字符附加到分区和行键

C# Azure表存储模拟器将SOH字符附加到分区和行键,c#,http-status-code-404,emulation,azure-table-storage,C#,Http Status Code 404,Emulation,Azure Table Storage,我刚刚开始在本地机器上使用Azure表存储(通过存储模拟器)。我正在表存储器中存储一些资源键;但是,当我使用分区键、行键或两者查询表(甚至通过SQLServerManagementStudio)时,不会返回任何结果 查询表存储的代码如下: public async Task<TEntity> GetItemAsync(string partitionKey, string rowKey) { var table = client.GetTableReferen

我刚刚开始在本地机器上使用Azure表存储(通过存储模拟器)。我正在表存储器中存储一些资源键;但是,当我使用分区键、行键或两者查询表(甚至通过SQLServerManagementStudio)时,不会返回任何结果

查询表存储的代码如下:

public async Task<TEntity> GetItemAsync(string partitionKey, string rowKey)
    {
        var table = client.GetTableReference(TableName);

        var retrieveOperation = TableOperation.Retrieve<TEntity>(partitionKey, rowKey);

        var retrievedResult = await table.ExecuteAsync(retrieveOperation);

        if (retrievedResult.Result != null)
        {
            return (TEntity)retrievedResult.Result;
        }
        else
        {
            Trace.TraceWarning("The entity could not be retrieved.");
            return null;
        }
    }
公共异步任务GetItemAsync(string partitionKey,string rowKey) { var table=client.GetTableReference(TableName); var retrieveOperation=TableOperation.Retrieve(partitionKey,rowKey); var retrievedResult=wait table.ExecuteAsync(retrieveOperation); if(retrievedResult.Result!=null) { return(tenty)retrievedResult.Result; } 其他的 { Trace.TraceWarning(“无法检索实体”); 返回null; } } 执行查询时,结果包含Http 404

有人知道问题出在哪里吗?如果它与附加的SOH字符有关,为什么Azure表存储会附加该字符

谢谢你的支持

有人知道问题出在哪里吗

据我所知,如果表不存在,通常会发生HTTP404错误。 我建议您首先检查您的表名是否存在

如果它与附加的SOH字符有关,为什么Azure表存储会附加该字符

根据对本文的理解,PartitionKey和RowKey属性的值中不允许使用以下字符: 从U+0000到U+001F的控制字符,包括:

  • 水平制表符(\t)字符
  • 换行符(\n)字符
  • 回车符(\r)字符
  • 从U+007F到U+009F的控制字符
\不允许使用u0001

我还在我的计算机上写了一个测试演示,我们不能在分区键和行键中插入控制字符

我的storage emulator版本是4.6,azure storage package版本是8.0.1,我想您插入控制字符的原因与您的emulator版本和软件包版本有关

我建议您可以安装有关模拟器的最新版本,然后重试

下载链接:

此外,如果表属性类型是Edm.String,我建议您可以确保插入的值是UFT-16编码的值

字符串:UTF-16编码的值。字符串值可能最多为 大小为64 KB

有人知道问题出在哪里吗

据我所知,如果表不存在,通常会发生HTTP404错误。 我建议您首先检查您的表名是否存在

如果它与附加的SOH字符有关,为什么Azure表存储会附加该字符

根据对本文的理解,PartitionKey和RowKey属性的值中不允许使用以下字符: 从U+0000到U+001F的控制字符,包括:

  • 水平制表符(\t)字符
  • 换行符(\n)字符
  • 回车符(\r)字符
  • 从U+007F到U+009F的控制字符
\不允许使用u0001

我还在我的计算机上写了一个测试演示,我们不能在分区键和行键中插入控制字符

我的storage emulator版本是4.6,azure storage package版本是8.0.1,我想您插入控制字符的原因与您的emulator版本和软件包版本有关

我建议您可以安装有关模拟器的最新版本,然后重试

下载链接:

此外,如果表属性类型是Edm.String,我建议您可以确保插入的值是UFT-16编码的值

字符串:UTF-16编码的值。字符串值可能最多为 大小为64 KB