1

または - 少なくとも正しい用語はステートフルだと思います。大量のデータを一覧表示する wcf サービスを取得しました。実際、あまりにも多くのデータがあるため、maxrecievedmessagesize を超えてしまい、プログラムがクラッシュします。

データベースへの呼び出しを分割する必要があることに気づきました。5000 行を取得する代わりに、行 1 ~ 200 を取得し、行番号 200 の ID を記憶し、行番号 200 の ID から次の 200 行を取得する必要があります。

誰もこれを行う方法を知っていますか? ステートフル (「ステートレスの反対」のように) は正しい方法ですか? で、どう進めばいいの…?誰かが私に例を挙げてもらえますか?

4

1 に答える 1

0

シナリオではステートフル サービスは必要ありません。ステートフル サービスは、特に 5000 行を保存する場合は避けることをお勧めします。

クライアントは、必要なデータ量を指定する必要があります。したがって、メソッド GetRows(index, amount) である可能性があります。ここで、index は行を取得するための開始インデックスであり、開始インデックスから取得する行の量です。

また、クライアントはサービスからデータの状態について尋ねる必要があり、サービスはデータの状態を送信するだけです。たとえば、これらの 5000 行がある場合、サービス GetRowsState(index, amount) でメソッドを使用できます。同じストーリーは、行の最終更新時刻を示しているだけで、受け取った時間がクライアントよりも高いかそれ以外の場合、次に、もう一度サーバーから GetRows に移動して、クライアント データの状態を更新します。

于 2012-11-20T10:12:42.593 に答える