1


0

WebSharingAppDemo-CEProviderEndToEndファイルがサーバーにバッチ処理される前に、NeedsScopeのpeerProviderを照会します。 これは故障しているようですか?

WebSharingAppDemo-CEProviderEndToEndに基づいてアプリケーションを構築しています。 サーバーにサーバー部分をデプロイすると、コードに「パスが無効です。 データベースのディレクトリを確認してください。」CeWebSyncService.csファイルのNeedsScope()の呼び出し中に。

サーバーがクライアントのsdfにアクセスできないことは明らかですが、この動作を実現するために何が起こるのでしょうか? アプリはバッチ処理を使用してデータを送信し、バッチを一時ディレクトリにマーシャリングする必要がありますが、この問題はファイルがバッチ処理される前に発生しています。 サーバーがpeerProividerにスコープが必要かどうかを判断するために調べるものは何もありません。 何が足りないの?

public bool NeedsScope()
{
    Log("NeedsSchema: {0}", this.peerProvider.Connection.ConnectionString);
    SqlCeSyncScopeProvisioning prov = new SqlCeSyncScopeProvisioning();

    return !prov.ScopeExists(this.peerProvider.ScopeName, (SqlCeConnection)this.peerProvider.Connection);
}

1 回答


0


サンプルでは、​​プロキシを使用してCEファイルと通信し、プロバイダー(プロキシではなく)とSQLサーバーと通信していることに気付きました。

SQLサーバーにアクセスするプロキシとCEファイルにアクセスするプロバイダーがあるように切り替えました。

それは私のために働くようです。

stats = synchronizationHelper.SynchronizeProviders(srcProvider、destinationProxy);

vs.

SyncOperationStatistics stats = syncHelper.SynchronizeProviders(srcProxy、destinationProvider);