只需查看表SysVersionControlMorphXRevisionTable
(如果您无法访问,请使用 SQL)并查看重复记录可能是什么。唯一索引是ItemPath
和Version
。我怀疑你会在这里看到任何东西。
这很可能是此方法\Data Dictionary\Tables\SysVersionControlMorphXRevisionTable\Methods\latestVersionNumber
中调用的问题,它试图获取当前的最高修订版本并被\Data Dictionary\Tables\SysVersionControlMorphXRevisionTable\Methods\create
.
在方法行#48 中放一个断点,create
看看是什么revision.Version
,在插入之前,检查 SQL 中是否ItemPath
/Version
已经存在于 SQL 中。
我猜这可能是服务器/客户端缓存问题。要解决此问题,请刷新Tools>Caches
. 如果这不能解决,并且无论如何都是一个好主意,请复制这些菜单项:
\Menu Items\Action\SysFlushAOD
\Menu Items\Action\SysFlushData
\Menu Items\Action\SysFlushDictionary
\Menu Items\Action\SysFlushReportServer
到一个新的菜单项并更改属性RunOn = Server
。然后运行这些,它会刷新你的服务器缓存。如果这仍然不起作用,请尝试重新启动 AOS。
如果这不起作用,您的用户application user cache
文件可能已损坏。关闭您的客户端并删除 %LocalAppData% 文件夹(通常为C:\Users\[user]\AppData\Local
)中的 *.auc 和 *.kti 文件,然后重新打开您的客户端。
在您使用的环境中,您最近是否恢复了另一个数据库的副本?
编辑:现在知道您进行了数据库还原,您很有可能GLOBALGUID
被重用和/或导致缓存问题。 有关如何/为什么发生这种情况的更多信息,请参见此处。
您可能应该停止 AOS 并运行以下 SQL 命令:
UPDATE SYSSQMSETTINGS SET GLOBALGUID = '00000000-0000-0000-0000-000000000000'
DELETE FROM SYSCLIENTSESSIONS
DELETE FROM SYSSERVERSESSIONS
您是否也遇到批处理运行的问题?(有点相关,但我主要只是对这个问题感到好奇)