繁体   English   中英

OracleModificationCommandBatch.Consume():Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException

[英]OracleModificationCommandBatch.Consume() : Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException

我将身份服务器 4 与 Oracle 中的数据库一起使用,即使禁用了 EnableTokenCleanup,我也经常看到此异常。 我有一个带有 +1 Identity Server 的负载平衡器,所有这些都使用相同的数据库。

2021-04-07 16:06:29.865 -07:00 [错误] Microsoft.EntityFrameworkCore.Update: 2021-04-07 16:06:29.865449 ThreadID:110 (错误) OracleModificationCommandBatch.Consume(): Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException :数据库操作预计会影响 1 行,但实际上会影响 0 行。 自加载实体以来,数据可能已被修改或删除。 在 Oracle.EntityFrameworkCore.Update.Internal.OracleModificationCommandBatch.Consume(RelationalDataReader relationalReader) 2021-04-07 16:06:29.868 -07:00 [错误] Microsoft.EntityFrameworkCore.Update:保存上下文更改时数据库中发生异常键入“IdentityServer4.EntityFramework.DbContexts.PersistedGrantDbContext”。 Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException:数据库操作预计会影响 1 行,但实际上影响了 0 行。 自加载实体以来,数据可能已被修改或删除。 在 Oracle.EntityFrameworkCore.Update.Internal.OracleModificationCommandBatch.Consume(RelationalDataReader relationalReader) 在 Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection 连接) 在 Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(DbContext _, ValueTuple 2 parameters) at Oracle.EntityFrameworkCore.Storage.Internal.OracleExecutionStrategy.Execute[TState,TResult](TState state, Func 3 operation, Func 3 verifySucceeded) at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(IEnumerable 1 commandBatches, IRelationalConnection connection) at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChanges(IReadOnlyList 1 entries) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IReadOnlyList 1 entriesToSave) 在 Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.Sav Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess) 处的 eChanges(Boolean acceptAllChangesOnSuccess) Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException:数据库操作预计会影响 1 行,但实际上会影响 0 行。 自加载实体以来,数据可能已被修改或删除。

我的印象是,如果让多个 IdentityServer 实例共享同一个数据库,就会遇到这样的问题。 当然,这是可能的,但我认为您需要查看数据库查询以确保它们可以处理多个 IdentityServer 写入同一数据库。

我假设 IdentityServer 是为一个 identityServer 和一个数据库制作的。

你真的需要同时运行两个实例吗? 或者如果主要实例出现故障,最好让一个活动实例和一个备用实例接管?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM