Restful WCF Data Service для загрузки и загрузки больших файлов?

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

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

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

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

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

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

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


person silverfighter    schedule 29.04.2010    source источник


Ответы (3)


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

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

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

Это очень важный номер 2147483647

person KenL    schedule 29.04.2010

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

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

Надеюсь, что это может помочь.

person Houssam Hamdan    schedule 24.05.2013

Не связано с вопросом, но связано с ответом @Houssam Hamdan:

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

person Arashv    schedule 24.12.2013