BLOB, потоки, байтовые массивы и WCF - PullRequest
1 голос
/ 29 марта 2011

Я работаю над сервисом обработки изображений, который имеет два слоя. Верхний слой - это служба WCF на основе REST, которая загружает изображение, обрабатывает и сохраняет его в файловой системе. Поскольку мой верхний уровень не имеет прямого доступа к базе данных (по замыслу), мне нужно передать изображение на мой прикладной уровень (WsHTTPBinding WCF), который имеет доступ к базе данных. В настоящее время размер изображения может достигать 2 МБ, и я пытаюсь найти наилучший способ передачи данных по проводам.

В настоящее время я отправляю данные изображения в виде байтового массива, и объект должен быть сохранен в памяти хотя бы временно, чтобы быть записанным в базу данных (в данном случае, на сервер MySQL), поэтому я не Я знаю, что использование потока поможет устранить потенциальные проблемы с памятью, или если мне придется столкнуться с потенциальным заполнением моей памяти, независимо от того, что я делаю. Или я просто слишком обдумал это?

1 Ответ

2 голосов
/ 29 марта 2011

Ознакомьтесь с разделом «Потоковые данные» этой статьи MSDN: Большие данные и потоковая передача

Я использовал точный метод, описанный для успешной загрузки больших документов и даже потокового видео с содержимогоWCF сервис.Ключи состоят в том, чтобы передать объект Stream в контракте сообщений и установить для TransferMode значение Streaming в конфигурации клиента и службы.

Я видел этот пост относительно эффективной передачи этого потока в MySQL, надеюсь.это направит вас в правильном направлении.

...