Я унаследовал приложение C # .NET, которое взаимодействует с веб-службой, а веб-служба взаимодействует с базой данных Oracle. Мне нужно добавить функцию экспорта в пользовательский интерфейс, чтобы создать электронную таблицу Excel для некоторых данных.
Я создал функцию веб-службы для запуска запроса к базе данных, загрузки данных в таблицу DataTable, а затем ее возврата, которая отлично работает для небольшого числа строк. Однако во время полного прогона данных достаточно, чтобы клиентское приложение блокировалось на несколько минут, а затем возвращает ошибку тайм-аута. Очевидно, что это не лучший способ получить такой большой набор данных.
Прежде чем я продолжу и придумаю какой-то хитрый способ разделения вызова, мне интересно, есть ли уже что-то, что могло бы справиться с этим. В данный момент я думаю о функции startExport, затем многократно вызываю функцию next50Rows до тех пор, пока не останется никаких данных, но поскольку веб-сервисы не сохраняют состояние, это означает, что мне придется хранить какой-то идентификационный номер и работать связанные разрешения. Это означало бы, что мне не нужно загружать весь набор данных в память веб-сервера, что является одной хорошей вещью.
Поэтому, если кто-нибудь знает лучший способ извлечения большого количества данных (в табличном формате) через веб-сервис ASMX, пожалуйста, дайте мне знать!