我一直在关注教程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
答案 0 :(得分:1)
您正在使用两个完全不同的同步提供商。部分代码使用较旧的脱机提供程序(DBServerSyncProvider和SQLCEClientSyncProvider),并且您尝试使用SQLSyncProvider,它是较新的基于知识的/对等同步提供程序(SqlSycProvider / SqlCeSyncProvider)的一部分。
您无法混合和匹配较旧和较新的同步提供商
如果您想使用SQL Express作为客户端,here是将其与WCF一起使用的示例