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: 同期グループ 'GROUP NAME' のテーブル 'TABLE NAME' の DbServerSyncProvider で変更を列挙できません。

---> 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 エラー)
で.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、文字列 resetOptionsString)
で System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior、RunBehavior runBehavior、ブール値 returnStream、ブール値 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 メソッド)
で System.Data.SqlClient.SqlCommand.ExecuteReader (CommandBehavior 動作、String メソッド)
で System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (CommandBehavior の動作) Microsoft.Synchronization.Data.Server.DbServerSyncProvider.EnumerateChanges
での System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
(SyncGroupMetadata groupMetadata、SyncSession syncSession、IDbTransaction トランザクション、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 に答える