Я пытаюсь извлечь большой объем данных из веб-службы WCF. Запрос довольно мал, и ответное сообщение будет очень большим. В настоящее время веб-служба бросает исключения SystemOutOfMemory из-за ограничения на IIS6 для памяти, которую он может выделить (~ 1,4 ГБ).Рекомендации по потоковой передаче веб-службы WCF
Я читал в некоторых блогах, что реализация потоковой передачи решит мою проблему.
Можно ли поделиться своим опытом с этой темой? Меня больше всего интересует какой-либо примерный клиентский код &, который может использоваться совместно или любые рекомендации/рекомендации. MemoryStream vs FileStream? Тип возврата должен быть Stream, Message, Byte []?
Моя работа выглядит следующим образом: (как правило, он будет возвращать большое количество элементов в массиве отклика, ~ 200K элементов)
MediumSizeResponseClass[] GetData(SmallSizeRequestClass request)
Также см. Http://msdn.microsoft.com/en-us/library/ms789010.aspx для примеров, которые можно найти в нижней части страницы, связанной с указанным выше. – Xiaofu
Thansk Mark, я как-то знаком с основами внедрения потоковой передачи. Я знаю, что есть разные способы его внедрения, некоторые разработчики будут использовать Message как возвращаемый тип, а не класс Stream. Некоторые будут использовать FileStream, а другие - MemoryStream. Я пытаюсь собрать отзывы, минусы профи в различных реализациях для потоковой передачи в WCF. – Damian
@Damian: хорошо, отлично. Ну, у меня не было особого опыта работы с потоковой передачей в WCF, но я бы сказал: использовать любой поток имеет смысл. Это должен быть поток, поток, поток, но какой тип в значительной степени не имеет значения. Если у вас уже есть файлы на сервере - используйте FileStream. Если вам нужно загрузить blob из таблицы базы данных - используйте MemoryStream. Я не знаю серьезных проблем с использованием одного типа потока по сравнению с другим. Но, возможно, кто-то еще может просветить нас еще! –