Microsoft同步框架2.1 ServerSyncProviderProxy与客户端SQL Server Express

时间:2015-07-02 14:07:15

标签: sql sync microsoft-sync-framework data-synchronization

我一直在关注教程here,以便使用WCF配置代理服务以进行同步。但是我看到ClientProvider的所有示例都是针对SqlServer Compact Edition的。可以使用SQL Server Express的SqlSyncProvider完成吗?

例如我的代码是:

var svc = new ServiceForSyncClient();
ServerSyncProvider serverProvider = new ServerSyncProviderProxy(svc);

// create the sync orhcestrator
var syncOrchestrator = new SyncOrchestrator
{
    LocalProvider = new SqlSyncProvider("ProductsScope", clientConn),
    RemoteProvider = serverProvider,
    Direction = SyncDirectionOrder.DownloadAndUpload
};

var syncStats = syncOrchestrator.Synchronize();

但是在同步时,我得到一个例外:

  

发生了类型为“System.InvalidCastException”的未处理异常   在Microsoft.Synchronization.dll

中      

其他信息:   Microsoft.Synchronization.KnowledgeSyncProvider

1 个答案:

答案 0 :(得分:1)

您正在使用两个完全不同的同步提供商。部分代码使用较旧的脱机提供程序(DBServerSyncProvider和SQLCEClientSyncProvider),并且您尝试使用SQLSyncProvider,它是较新的基于知识的/对等同步提供程序(SqlSycProvider / SqlCeSyncProvider)的一部分。

您无法混合和匹配较旧和较新的同步提供商

如果您想使用SQL Express作为客户端,here是将其与WCF一起使用的示例