0

Visual Studio 2010 と SQL Server 2008 R2 を使用しています。*.sdfWCF サービスを使用して SQL Server CE ( ) ファイルを SQL Server に同期するプロジェクトを作成しました。

小さな SQL Server CE ファイル (18 MB) では問題なく動作しますが、大きな SQL Server CE ファイル (38 MB) を使用して同期しようとすると、エラーが発生します。

web.configWCF サービスとapp.configアプリケーションの多くのパラメーターのサイズを増やしました。

しかし、エラーが発生し続けます.....

基になる接続が閉じられました: 接続が予期せず閉じられました。

スタックトレース :

System.RuntimeMethodHandle._InvokeMethodFast (オブジェクト ターゲット、Object[] 引数、SignatureStruct& sig、MethodAttributes methodAttributes、RuntimeTypeHandle typeOwner)
で System.RuntimeMethodHandle.InvokeMethodFast (オブジェクト ターゲット、Object[] 引数、シグネチャ sig、MethodAttributes methodAttributes、RuntimeTypeHandle typeOwner)
で.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder バインダー, Object[] パラメーター, CultureInfo カルチャ, Boolean skipVisibilityChecks)
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, バインダー バインダー, Object[] パラメーター, CultureInfo カルチャ)
System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) で
Microsoft.Synchronization.Data.ServerSyncProviderProxy.GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession)
で Microsoft.Synchronization.SyncAgent.DownloadChanges(SyncGroupMetadata groupMetadata)
で Microsoft.Synchronization.SyncAgent.DataSynchronize()
で Microsoft.Synchronization.SyncAgent.Synchronize()
でSyncSample.AccountsListing.btnSync_Click(オブジェクト送信者, EventArgs e)

4

3 に答える 3

0

maxBufferPoolSize、maxReceivedMessageSizeなど、十分なデータを処理するように正しく構成していなかったときに、Webサービスからこのようなエラーが最近発生しました。

また、大きな配列を送信する場合は、これらのファイルのサービス動作セクションとエンドポイント動作セクションが必要になる場合があります。

<dataContractSerializer maxItemsInObjectGraph="array size here"/>
于 2012-11-05T23:04:04.027 に答える
0

Amit が提案したように、WCF トレースを有効にしてみてください。発生しているエラーは、サーバー側で多くのことが起こっていることを意味している可能性があります。

Windows Mobile アプリを構築している場合を除き、古い SqlCeClientSyncProvider/DBServerSyncProvider/SyncAgent の代わりに、新しい SqlSyncProvider/SqlCeSyncProvider/SyncOrchestrator コンボを使用することをお勧めします (ローカル データベース キャッシュ プロジェクト アイテムで使用されるものと同じ)。

データサイズが本当に問題である場合、新しいプロバイダーにはバッチ処理に関する機能があります。

于 2012-11-06T02:00:07.163 に答える
0

上記の例外は、接続が閉じられているために予期しないことが発生したことを意味し、ほとんどの場合、リクエストを拒否する原因となったサービス側の例外が原因です。サービスの WCF トレースを有効にし、ログをチェックして例外を確認できます。ほとんどの場合、例外メッセージは何が問題だったかを示しています ;-)

HTH、アミット

于 2012-11-05T14:33:43.030 に答える