「MicrosoftSyncFramework2.1」を使用して、2つのローカルSQLServer2008データベースをasp.netプロジェクトと同期しています。
私のコード:
SqlConnection clientConn = new SqlConnection(@"Server=XXXXXX;User ID=sa; Password=xxxx;Database=ZzzClient");
SqlConnection serverConn = new SqlConnection("Server=XXXXXX;User ID=sa; Password=xxxx;Database=ZzzServer");
SyncOrchestrator syncOrchestrator = new SyncOrchestrator();
syncOrchestrator.LocalProvider = new SqlSyncProvider("InventoryScope", clientConn);
syncOrchestrator.RemoteProvider = new SqlSyncProvider("InventoryScope", serverConn);
syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload;
SyncOperationStatistics syncStats = syncOrchestrator.Synchronize();
しかし、Synchronize()呼び出しを実行すると、次のエラーが発生します。
CLSID {EC413D66-6221-4EBB-AC55-4900FB321011}を持つコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80040154クラスが登録されていません(HRESULTからの例外:0x80040154(REGDB_E_CLASSNOTREG))。
開発環境VS2012、C#asp.netプロジェクト、フレームワーク4.5 OS:windows 7HomePrem。(x64)
SyncSDK-v2.1-x64-ENUがインストールされました。
Microsoft.Synchronization
Microsoft.Synchronization.Data
Microsoft.Synchronization.Data.SqlServer
「C:\ ProgramFiles \ Microsoft SyncFramework \ 2.1\Runtime」からプロジェクトへの参照が追加されました。
SqlSyncScopeProvisioningによってプロビジョニングされた両方のデータベース。
ProjectPlatformTargetをx64とx86の両方で試しました
どんなアイデアでも大歓迎です。
すべての参照を「C:\ ProgramFiles(x86)\ Microsoft SDKs \ Microsoft SyncFramework」から「C:\ ProgramFiles \ Microsoft SyncFramework \ 2.1\Runtime」に変更しました
そして、プラットフォームターゲットをx64に設定します
[ローカルIISWebサーバーを使用する]が選択されている
更新: コンソールアプリケーションで同じプロセスを試しましたが、正しく機能し、すべてのデータが同期されました。
コンソールアプリケーションへの次の4つの参照を追加しました。
"c:\ Program Files \ Microsoft Sync Framework \ 2.1 \ Runtime \ x64 \ Microsoft.Synchronization.dll"
c:\ Program Files \ Microsoft Sync Framework \ 2.1 \ Runtime \ ADO.NET \ V3.1 \ x64 \ Microsoft.Synchronization.Data.dll "
"c:\ Program Files \ Microsoft Sync Framework \ 2.1 \ Runtime \ ADO.NET \ V3.1 \ x64 \ Microsoft.Synchronization.Data.Server.dll"
"c:\ Program Files \ Microsoft Sync Framework \ 2.1 \ Runtime \ ADO.NET \ V3.1 \ x64 \ Microsoft.Synchronization.Data.SqlServer.dll"
アプリケーションのデバッグプロパティを次のように設定します
Asp.Netプロジェクトでは、同じ参照、同じビルドプロパティ(x64をターゲット)および同じコードは機能しません。
ファイルまたはアセンブリ'WebApplication2'またはその依存関係の1つを読み込めませんでした。間違った形式のプログラムを読み込もうとしました。
おそらく、Webアプリケーションは正しいアセンブリを読み込めず、x86バージョンを読み込もうとします