我收到错误消息:
无法获取新的服务器锚点。确保您可以建立到服务器数据库的连接并且正确指定了 DbServerSyncProvider 的 SelectNewAnchorCommand 属性。
在 Windows Mobile 中将 SQL Server DB 与 Compact DB 同步时发生这种情况:
Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize()
我收到错误消息:
无法获取新的服务器锚点。确保您可以建立到服务器数据库的连接并且正确指定了 DbServerSyncProvider 的 SelectNewAnchorCommand 属性。
在 Windows Mobile 中将 SQL Server DB 与 Compact DB 同步时发生这种情况:
Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize()
我在 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 有太多未知数。
我的问题已经解决了。我没有使用 sql 2008,而我的复制紧凑型数据库是从 SQL Server 2008 创建的。数据库的架构也不正确。现在在 sql server 和 compact DB 之间完成了同步。