1

我们构建了一个应用程序,它将中央 SQL Server 2008 数据库与多个客户端 SQL Server 2008 Express 数据库同步。

尽管此应用程序是成功的,但我们希望确保数据传输是安全的。为了做到这一点,我们正在尝试重新编写我们的应用程序以使用使用 WCF 实现的 Web 服务进行同步。

下一篇文章中的示例看起来非常好,我已经设法重写了我们的大部分应用程序。 http://code.msdn.microsoft.com/Database-SyncSQL-Server-e97d1208#content

但是,在我们的应用程序中,我们需要将 ApplyChangeFailed 事件处理程序分配给本地提供者和远程提供者。(请参见下面的示例代码)

((SqlSyncProvider)_syncOrchestrator.LocalProvider).ApplyChangeFailed += new EventHandler(SynchronisationWizardClient_ApplyChangeFailed);

((SqlSyncProviderProxy)_syncOrchestrator.RemoteProvider).ApplyChangeFailed += new EventHandler(SynchronisationWizardServer_ApplyChangeFailed);

由于远程提供程序现在是 SqlSyncProviderProxy 对象,因此 ApplyChangeFailed 事件不可用。

文章中的示例没有使用 ApplyChangeFailed 事件,因此在任何示例代码中都没有引用它。我假设我们需要修改一些 WCF 协定和类,以便能够在我们的 SqlSyncProviderProxy 上设置 ApplyChangeFailed。

有谁知道如何做到这一点?

4

1 回答 1

1

您确定希望 WCF 服务在每次引发 ApplyChangeFailed 事件时回调您的客户端吗?

WCF 服务具有对 SqlSyncProvider 的引用,您可以在服务端处理 ApplyChangeFailed 事件,而无需将其发送回客户端。如果需要解决冲突,可以在服务端解决。

于 2012-08-02T11:33:38.827 回答