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 += 新しい EventHandler(SynchronisationWizardClient_ApplyChangeFailed);

((SqlSyncProviderProxy)_syncOrchestrator.RemoteProvider).ApplyChangeFailed += 新しい EventHandler(SynchronisationWizardServer_ApplyChangeFailed);

リモート プロバイダーは SqlSyncProviderProxy オブジェクトになったため、ApplyChangeFailed イベントは使用できません。

この記事の例では ApplyChangeFailed イベントを使用していないため、どのサンプル コードでも参照されていません。SqlSyncProviderProxy で ApplyChangeFailed を設定できるようにするには、WCF の契約とクラスの一部を修正する必要があると思います。

これを行う方法を知っている人はいますか?

4

1 に答える 1

1

ApplyChangeFailedイベントが発生するたびに、WCFサービスでクライアントにコールバックしてもよろしいですか?

WCFサービスにはSqlSyncProviderへの参照があり、クライアントに返送することなく、サービス側でApplyChangeFailedイベントを処理できます。競合を解決する必要がある場合は、サービス側で解決できます。

于 2012-08-02T11:33:38.827 に答える