0

エラーが発生しています:

新しいサーバー アンカーを取得できません。サーバー データベースへの接続を確立できること、および DbServerSyncProvider の SelectNewAnchorCommand プロパティが正しく指定されていることを確認してください。

これは、SQL Server DB を Windows Mobile の Compact DB と同期しているときに、次の行で発生します。

Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize()
4

2 に答える 2

0

私の問題は解決されました。私はSQL2008を使用しておらず、複製されたコンパクトDBはSQL Server 2008から作成されました。また、Dbsのスキーマが正しくありませんでした。これで、SQLサーバーとコンパクトDBの間で同期が行われます。

于 2012-07-09T14:41:14.633 に答える
0

Visual Studio 2008 で 1 つのスマート デバイス プロジェクトを作成しました。デザイナー ウィザードを使用して、SQL Server DB (他のコンピューターに存在) と Compact DB (現在のアプリケーションに存在) の間の同期を作成しました。ウィザードは、WCF サービス ライブラリを使用してサーバー DB とやり取りしました。WCF の app.config で接続文字列を変更すると、上記のエラーが発生します。

私が最初に思いつくのは、デバイスがサーバー DB に接続できないということです。デバイス自体がサーバーへの接続を確立することを承認されていない場合、接続文字列が統合セキュリティを使用しているか、SQL ユーザー名とパスワードを含んでいるかは関係ありません。

この別の接続文字列を使用して、(Sync を使用せずに) サーバーに直接接続できますか?

例:

Private Function DatabaseConnect(ByVal connection As String) As DateTime
  Dim dateTime As DateTime = New DateTime(1900, 1, 1)
  Dim obj As New Object()
  Using cmd As New SqlCommand("SELECT GETDATE();", New SqlConnection(connection))
    cmd.Connection.Open()
    obj = cmd.ExecuteScalar()
  End Using
  If (Not obj Is DBNull.Value) Then
    dateTime = DirectCast(obj, DateTime)
  End If
  Return dateTime
End Function

もう 1 つの確認事項:接続している他のデータベースは同期をサポートしていますか? ここには、古い SQL 2000 データベースを含む複数のデータベースがあります。同期はサポートしていません。

プロジェクトを単純化して、エラーが発生している場所を絞り込んでください。

現在、ウィザード、同期、および WCF の使用に関して不明な点が多すぎます。

于 2012-07-05T13:55:13.643 に答える