1

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);
}
4

1 に答える 1

0

このサンプルでは、​​CE ファイルとやり取りするためにプロキシを使用していましたが、SQL サーバーとやり取りするためにプロバイダー (プロキシではない) を使用していることに気付きました。

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

それは私にはうまくいくようです。

統計 = 同期ヘルパー.SynchronizeProviders(srcProvider, destinationProxy);

対。

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

于 2010-03-19T13:22:42.473 に答える