1

尝试插入 CosmosDb 时出现以下错误。正在插入文档但抛出此错误。我正在使用 .net core 5.0、Microsoft.Azure.Cosmos 3.17.0。请指教。

找不到方法:'System.Threading.Tasks.Task 1<Microsoft.Azure.Cosmos.Serialization.HybridRow.Result> Microsoft.Azure.Cosmos.Serialization.HybridRow.RecordIO.RecordIOStream.ReadRecordIOAsync(System.IO.Stream, System.Func2<System.ReadOnlyMemory 1<Byte>,Microsoft.Azure.Cosmos.Serialization.HybridRow.Result>, System.Func2<System.ReadOnlyMemory 1<Byte>,Microsoft.Azure.Cosmos.Serialization.HybridRow.Result>, Microsoft.Azure.Cosmos.Serialization.HybridRow.MemorySpanResizer1)'

protected virtual CosmosClient _cosmosClient
    {
        get
        {
            var options = new CosmosClientOptions
            {
                SerializerOptions = new CosmosSerializationOptions
                {
                    IgnoreNullValues = true,
                    PropertyNamingPolicy = CosmosPropertyNamingPolicy.CamelCase
                },
                AllowBulkExecution = true
            };

            return new CosmosClient(_connectionString, options);
        }
    }

    protected Container _cosmosContainer
    {
        get => _cosmosClient.GetContainer(_databaseId, _containerId);
    }

protected async Task<T> CreateItemAsync<T>(string id, T model, PartitionKey partitionKey)
        {
            try
            {
                return await _cosmosContainer.CreateItemAsync(model, partitionKey);
            }
            catch (CosmosException ex)
            {
                LogCosmosDbError(ex);

                throw;
            }
        }
4

2 回答 2

0

参考:https ://github.com/Azure/azure-cosmos-dotnet-v3/issues/2292#issuecomment-796104041

重复注释中所述的内容以供将来参考:这通常与 DLL 不匹配(一个或多个依赖项的旧 DLL)有关。

可能是该项目包含对具有旧版本 SDK 的其他项目的引用,在这种情况下,请确保所有版本都匹配。

这也可能是您的部署过程的问题,可能在部署发生时,某些 DLL 没有被覆盖,在这种情况下,请始终确保您正在清理/bin文件夹或使用较新版本更新所有文件(某些部署过程可能不会更新DLL 或 DLL 可能被锁定并且当前正在使用中)。

于 2021-03-11T18:45:37.493 回答
0

我与您的相同版本有同样的问题,但是,事实证明问题是由安装在来自https://github.com/xabaril/AspNetCore.Diagnostics.HealthChecks的 CosmosDb 健康检查中的依赖项引起的,我有 5.03 版Cosmos 库的健康检查和 3.17.1,我收到了这些错误。

当我删除健康检查时,问题就消失了。

于 2021-04-03T12:17:51.863 回答