【问题标题】:Error in SQL Server database synchronization using SyncServices and WCF使用 SyncServices 和 WCF 进行 SQL Server 数据库同步时出错
【发布时间】:2012-07-12 04:23:14
【问题描述】:

我在服务器上有数据库 - 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 中表“TABLE NAME”的更改 同步组“组名”。

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

在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔型 breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj,UInt32 错误)
在 System.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 数据流, 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、布尔 returnStream、布尔 异步)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior、runBehavior、布尔返回流、字符串 方法,DbAsyncResult 结果)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior、runBehavior、布尔返回流、字符串 方法)
在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,字符串方法)
在 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 事务、 EnumerateChangeType changeType, SyncSchema traceSchema)

表名每次都不一样。

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

谢谢。

【问题讨论】:

    标签: wcf sql-server-2008 syncservices


    【解决方案1】:

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

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

    ALTER DATABASE yourdatabasenamehere
    SET READ_COMMITTED_SNAPSHOT ON
    
    GO
    )
    

    【讨论】:

      猜你喜欢
      • 2010-12-12
      • 1970-01-01
      • 2016-02-20
      • 2016-12-21
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多