【问题标题】:Restful WCF Data Service to up- and download large files?用于上传和下载大文件的 Restful WCF 数据服务?
【发布时间】:2023-03-18 18:30:01
【问题描述】:

我正在考虑编写一个能够上传和流式传输大型视频文件 (GB) 的 RESTful 服务(将来它可能不仅是视频,还可能是大型文档。

到目前为止,我进行了研究,对我来说真正有意义的可能是使用 off:

WCF 数据服务和实现IDataServiceStreamProvider 并且在后端我想使用新的SQL Type FILESTREAM 将大文件存储到 SQL SERVER 2008 中。看起来我还必须使用一些 Win 32 API 来访问文件系统SafeFileHandle handle = SqlNativeClient.OpenSqlFilestream

由于 WCF 数据服务喜欢与实体框架或 Linq-To-SQL 一起玩,它们可以作为流式实现,并且是否支持 SQL Server 文件流类型?

这是计划,但我不知道如何将它组装在一起...我想将大文件分块并能够恢复和取消。

对于上传:我不确定是否使用 silverlight 上传控件或其他一些漂亮的 ajax 工具。

谁能在这里指出我正确的方向......或者你会认为这是一条路吗?想法,链接?应该很棒……

【问题讨论】:

    标签: asp.net-mvc wcf sql-server-2008 filestream wcf-data-services


    【解决方案1】:

    我做了一些我发送大量数据文件的事情。我使用这两个示例来帮助编写我的代码

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

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

    这是一个非常重要的数字 2147483647

    【讨论】:

      【解决方案2】:

      银斗士: 仅在 IIS6 上,我无法将 WCF 数据服务配置为通过网络发送超过 30 MB 的流。我相信它不是为大型流交易而构建的。只需尝试上传一个 27 MB 的文件并监控相关的 w3wp 进程,您会惊讶于所消耗的内存量。

      解决方案是创建一个托管在自己的 w3wp 进程下的 WCF 服务应用程序,并且只负责通过 WCF 下载/上传。我建议您使用以下项目http://www.codeproject.com/Articles/166763/WCF-Streaming-Upload-Download-Files-Over-HTTP

      希望以上内容能有所帮助。

      【讨论】:

        【解决方案3】:

        与问题无关,但与@Houssam Hamdan 的回答有关:

        30 MB 的限制不是因为 WCF 数据服务,而是 IIS 的限制,可以通过配置文件和 IIS 的设置来更改,并捕获 IIS 抛出的一些异常

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-05
          • 1970-01-01
          • 2013-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多