gpt4 book ai didi

c# - Microsoft Sync Framework COM 类错误

转载 作者:可可西里 更新时间:2023-11-01 07:45:26 26 4
gpt4 key购买 nike

我一直在使用“Microsoft Sync Framework 2.1”将两个本地 sql server 2008 数据库与一个 asp.net 项目同步。

我的代码:

SqlConnection clientConn = new SqlConnection(@"Server=XXXXXX;User ID=sa; Password=xxxx;Database=ZzzClient");

SqlConnection serverConn = new SqlConnection("Server=XXXXXX;User ID=sa; Password=xxxx;Database=ZzzServer");

SyncOrchestrator syncOrchestrator = new SyncOrchestrator();

syncOrchestrator.LocalProvider = new SqlSyncProvider("InventoryScope", clientConn);
syncOrchestrator.RemoteProvider = new SqlSyncProvider("InventoryScope", serverConn);

syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload;

SyncOperationStatistics syncStats = syncOrchestrator.Synchronize();

但是当执行 Synchronize() 调用时我得到以下错误;

Retrieving the COM class factory for component with CLSID {EC413D66-6221-4EBB-AC55-4900FB321011} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

开发环境 VS 2012,C# asp.net 项目,框架 4.5操作系统:Windows 7 家庭版。 (x64)

已安装 SyncSDK-v2.1-x64-ENU。

微软.同步

Microsoft.Synchronization.Data

Microsoft.Synchronization.Data.SqlServer

引用已从“C:\Program Files\Microsoft Sync Framework\2.1\Runtime”添加到项目。

两个数据库均由 SqlSyncScopeProvisioning 提供。

我已经尝试过 Project Platform Target x64 和 x86

任何想法将不胜感激....

Provisioned databases

我已将所有引用从“C:\Program Files (x86)\Microsoft SDKs\Microsoft Sync Framework”更改为“C:\Program Files\Microsoft Sync Framework\2.1\Runtime”

new references

并将平台目标设置为 x64 Platform Target

“使用本地 IIS Web 服务器”已选中 Local IIS

更新:我用控制台应用程序尝试了相同的过程,它工作正常并同步了所有数据。

我添加了以下四个对控制台应用程序的引用;

"c:\Program Files\Microsoft Sync Framework\2.1\Runtime\x64\Microsoft.Synchronization.dll"

c:\Program Files\Microsoft Sync Framework\2.1\Runtime\ADO.NET\V3.1\x64\Microsoft.Synchronization.Data.dll"

"c:\Program Files\Microsoft Sync Framework\2.1\Runtime\ADO.NET\V3.1\x64\Microsoft.Synchronization.Data.Server.dll"

"c:\Program Files\Microsoft Sync Framework\2.1\Runtime\ADO.NET\V3.1\x64\Microsoft.Synchronization.Data.SqlServer.dll"

并设置应用程序的调试属性如下 console application's properties

相同的引用、相同的构建属性(目标为 x64)和相同的代码在 Asp.Net 项目中不起作用。

Could not load file or assembly 'WebApplication2' or one of its dependencies. An attempt was made to load a program with an incorrect format.

我想,Web 应用程序无法加载正确的程序集并尝试加载 x86 版本

最佳答案

我讨厌回答自己的问题:

If you start an asp.net project which has x64 Sync Framework assemblies but you are NOT running Visual Studio under the administrator account, VS can not load Snyc Framework assemblies. At least, that's my problem..

如果您不是管理员,VS 无法正确管理“本地 IIS Web 服务器”。

此外,如果我没记错的话,即使您的操作系统是 x64,“IIS Express”也无法加载 x64 同步框架程序集。

Do not bother to use "IIS express" just use "Local IIS Web Server" with administrator rights on VS and set platform target x64 for your project.

enter image description here

关于c# - Microsoft Sync Framework COM 类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com