Restful WCF Data Service для загрузки и загрузки больших файлов? - PullRequest
2 голосов
/ 29 апреля 2010

Я собираюсь написать спокойный сервис, который сможет загружать и передавать потоковые видеофайлы большого размера (ГБ) (в будущем это могут быть не только видео, но и большие документы.

Я исследовал до сих пор, и что действительно имеет смысл для меня, может быть использовать:

Службы данных WCF и реализация IDataServiceStreamProvider, а на внутреннем сервере я хочу перетащить большие файлы в SQL SERVER 2008, используя новый SQL Type FILESTREAM. Похоже также, что мне пришлось использовать Win 32 API для доступа к файловой системе SafeFileHandle handle = SqlNativeClient.OpenSqlFilestream

Поскольку Службы данных WCF любят играть с Entity Framework или Linq-To-SQL, кто может быть потоковой реализацией и есть ли поддержка для типа файлового потока SQL Server?

это план, но я не знаю, как собрать его вместе ... Я думал о том, чтобы разбить большие файлы и иметь возможность возобновления и отмены.

Для загрузки: я не уверен, что использую элемент управления загрузкой Silverlight или какой-либо другой отличный инструмент ajax.

Может ли кто-нибудь указать мне правильное направление здесь ... или вы думаете, что это путь? Мысли, ссылки? было бы здорово ...

Ответы [ 3 ]

0 голосов
/ 24 мая 2013

silverfighter: Только на IIS6 я не смог настроить службы данных WCF для отправки более 30 МБ потока по сети. Я считаю, что он не предназначен для транзакций с большими потоками. Просто попробуйте загрузить файл размером 27 МБ и отслеживать соответствующий процесс w3wp, вы будете удивлены количеством потребляемой памяти.

Решением было создание приложения службы WCF, размещенного под собственным процессом w3wp и отвечающего только за загрузку / выгрузку через WCF. я рекомендую использовать следующий проект http://www.codeproject.com/Articles/166763/WCF-Streaming-Upload-Download-Files-Over-HTTP

Надеюсь, что вышесказанное может помочь.

0 голосов
/ 24 декабря 2013

Не относится к вопросу, но относится к ответу @Houssam Hamdan:

Ограничение в 30 МБ обусловлено не службами данных WCF, а ограничением IIS, которое можно изменить с помощью файла конфигурации и настроек IIS иотлов некоторых исключений, выданных IIS

0 голосов
/ 29 апреля 2010

Я сделал что-то, где я отправлял огромные файлы данных. Я использовал эти два примера, чтобы помочь написать мой код

http://msdn.microsoft.com/en-us/library/ms751463.aspx

http://www.codeproject.com/KB/WCF/WCFDownloadUploadService.aspx

Это очень важное число, которое нужно знать 2147483647

...