我们已经构建了一个应用程序,该应用程序将一个中央SQL Server 2008数据库与多个客户端SQL Server 2008 Express数据库同步。
尽管此应用程序是成功的,但我们希望确保数据传输是安全的。为了做到这一点,我们正在尝试重新编写我们的应用程序,以便使用WCF实现的web服务进行同步。
下面文章中的例子看起来非常好,我已经重新编写了大部分应用程序。http://code.msdn.microsoft.com/Database-SyncSQL-Server-e97d1208#content
但是,在我们的应用程序中,我们需要将ApplyChangeFailed事件处理程序分配给本地提供程序和远程提供程序。(请参阅下面的示例代码)
((SqlSyncProvider)_syncOrchestrator.LocalProvider).ApplyChangeFailed+=新事件处理程序(SynchronizationWizardClient_ApplyChangeFailed);
((SqlSyncProviderProxy)_syncOrchestrator.RemoteProvider).ApplyChangeFailed+=新事件处理程序(SynchronizationWizardServer_ApplyChangeFailed);
由于远程提供程序现在是SqlSyncProviderProxy对象,ApplyChangeFailed事件不可用。
文章中的示例没有使用ApplyChangeFailed事件,因此在任何示例代码中都没有引用它。我认为我们需要修改一些WCF合约和类,以便能够在SqlSyncProviderProxy上设置ApplyChangeFailed。
有人知道怎么做吗?
您确定要WCF服务在每次引发ApplyChangeFailed事件时回调您的客户端吗?
WCF服务具有对SqlSyncProvider的引用,您可以在服务端处理ApplyChangeFailed事件,而无需将其发送回客户端。如果需要解决冲突,可以在服务端解决。