1

我在服务器上有数据库 - Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)。配置为使用 Microsoft Synchronization Services for ADO.NET 通过 WCF 与 SQL Server Compact 数据库客户端同步。

有时这个错误开始出现:

Microsoft.Synchronization.Data.SyncException:无法枚举同步组“组名”中表“表名”的 DbServerSyncProvider 更改。

---> System.Data.SqlClient.SqlException:从服务器接收结果时发生传输级错误(提供者:TCP Provider,错误:0 - 信号量超时期限已过。)

在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj,UInt32 错误)
在系统.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
在 System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
在 System.Data.SqlClient.TdsParserStateObject.ReadByte( )
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
在 System.Data.SqlClient。 SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String 方法, DbAsyncResult 结果)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为, String 方法)
在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (CommandBehavior 行为)
在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
在 Microsoft.Synchronization.Data.Server.DbServerSyncProvider.EnumerateChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession, IDbTransaction transaction, EnumerateChangeType changeType, SyncSchema traceSchema)

表名每次都不一样。

请告诉我如何解决这个问题。

谢谢。

4

1 回答 1

2

如果您在数据库上指定的保留期内没有成功同步,我相信您会收到此错误。看到这个链接

当同步进程由于打开的事务或来自另一个进程的锁定而无法获取数据时,我们偶尔也会遇到这种情况。(我相信解决方法是SET READ_COMMITTED_SNAPSHOT ON

ALTER DATABASE yourdatabasenamehere
SET READ_COMMITTED_SNAPSHOT ON

GO
)
于 2012-09-26T22:30:31.400 回答