0

我收到错误消息:

无法获取新的服务器锚点。确保您可以建立到服务器数据库的连接并且正确指定了 DbServerSyncProvider 的 SelectNewAnchorCommand 属性。

在 Windows Mobile 中将 SQL Server DB 与 Compact DB 同步时发生这种情况:

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

2 回答 2

0

我在 Visual Studio 2008 中制作了一个智能设备项目。我使用设计器向导在 SQL Server DB(存在于其他计算机)和 Compact DB(存在于当前应用程序)之间创建同步。向导使用 WCF 服务库与服务器 DB 进行交互。当我更改 WCF 的 app.config 中的连接字符串时出现上述错误。

我首先想到的是该设备无法连接到您的服务器数据库。如果设备本身无权建立与服务器的连接,您的连接字符串是使用集成安全性还是包含 SQL 用户名和密码都无关紧要。

使用这个不同的连接字符串,你可以直接连接到服务器(不使用同步)吗?

例子:

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

另一件要注意的事情:您要连接的其他数据库是否支持同步?我们这里有多个数据库,包括一个较旧的 SQL 2000 数据库。它不支持同步。

尝试简化您的项目以缩小发生错误的范围。

目前,使用向导、同步和 WCF 有太多未知数。

于 2012-07-05T13:55:13.643 回答
0

我的问题已经解决了。我没有使用 sql 2008,而我的复制紧凑型数据库是从 SQL Server 2008 创建的。数据库的架构也不正确。现在在 sql server 和 compact DB 之间完成了同步。

于 2012-07-09T14:41:14.633 回答