Web サービスと通信する C# .NET アプリケーションを継承しました。Web サービスは Oracle データベースと通信します。UI にエクスポート機能を追加して、一部のデータの Excel スプレッドシートを作成する必要があります。
データベース クエリを実行し、データを DataTable にロードしてから返す Web サービス関数を作成しました。これは、少数の行に対して正常に機能します。ただし、完全な実行には十分なデータがあるため、クライアント アプリケーションは数分間ロックし、タイムアウト エラーを返します。明らかに、これはそのような大規模なデータセットを取得する最良の方法ではありません。
通話を分割する危険な方法を考え出す前に、これを処理できる何かがすでに用意されているかどうか疑問に思っています。現時点では、startExport 関数を考えてから、データがなくなるまで next50Rows 関数を繰り返し呼び出しますが、Web サービスはステートレスであるため、何らかの ID 番号を保持して処理する必要があります。関連する権限。これは、データ セット全体を Web サーバーのメモリにロードする必要がないことを意味しますが、これは良いことの 1 つです。
したがって、ASMX Web サービスを介して大量のデータ (テーブル形式) を取得するより良い方法を誰かが知っている場合は、お知らせください。