使用 SQL 2014 Express 进行复制时如何解决“不支持此类接口”的问题

问题描述 投票:0回答:1

我需要指出正确的方向,因为我似乎碰上了砖墙。 当我尝试在其中一台笔记本电脑上同步订阅者时,出现以下错误:

Type : Microsoft.SqlServer.Replication.ComErrorException
Description : No such interface supported

Stack Trace: at Microsoft.SqlServer.Replication.MergeSynchronizationAgent..ctor()
   at Microsoft.SqlServer.Replication.MergePullSubscription.get_SynchronizationAgent()
   at DAL.MergeRepSynch()

Error Method: Void .ctor()

该应用程序是 VB.NET .NET Framework 4、Visual Studio 2013。(32 位) MS SQL 版本是 2014 Express (SP3)(32 位) 操作系统是Windows 11。

我还在同一台笔记本电脑上有一个用 C# .NET Framework 4.5.1 (Visual Studio 2013) 编写的 Web 应用程序,它同步到同一发布者,并且运行时没有任何错误。

我已经尝试过:

  • 卸载并重新安装桌面应用程序。
  • 安装更高版本的桌面应用程序
  • 安装 SQL 2014 Express SP3
  • 重新注册 %SystemRoot%\system32 中的 actxprxy.dll 和 oleaut32.dll 文件
  • 使用 DISM 检查运行状况
  • 使用 .NET Framework 4.6.1 重建 VB.Net 应用程序

我注意到的唯一区别是 Web 应用程序的 bin 文件夹中有一个 Microsoft.SqlServer.Replication.dll。我已将其复制到与应用程序相同的目录中并注册它。这也没有什么区别。

在 SQL Management Studio 中执行

print @@version
时,我得到以下信息

Microsoft SQL Server 2014 (SP3-GDR) (KB5021037) - 12.0.6174.8 (Intel X86) 
Jan  4 2023 10:31:37 
Copyright (c) Microsoft Corporation
Express Edition on Windows NT 6.3 <X64> (Build 22621: ) (WOW64)

我确实注意到了

KB4014719 - 修复:在 SQL Server 2016 中使用 RMO 运行合并复制的 Web 同步时出现“(0x80004002) 不支持此类接口”错误

关于 Microsoft 支持,但那是 2016 年的内容,没有 2014 年的内容。

如果我从新创建订阅者数据库,那么它将从发布者那里提取所有内容以使数据保持最新。

如有任何帮助,我们将不胜感激。

vb.net sql-server-express windows-11 merge-replication
1个回答
0
投票

VB 与此无关。这完全是 SQL Server 的事情,即:如果您想使用复制,您需要 SQL Server 的付费版本,而不是 Express 版本。

© www.soinside.com 2019 - 2024. All rights reserved.