是否可以使用 WCF 服务进行上载和下载

本文关键字:上载 下载 服务 可以使 WCF 是否 | 更新日期: 2023-09-27 17:57:16

我正在为学校做一个媒体服务器项目,我为此选择了WCF方法。但是,我开始怀疑这是否是一个好主意。

获取 WCF 服务来上载和下载文件是一件简单的事情吗?直截了当,我的意思是不涉及很多黑客或第三方库的东西。WCF 服务还将期望将音频和视频流式传输到其使用者/客户端。

我还应该提到,有问题的 WCF 服务作为 IIS 之外的 Windows 托管服务托管

这就是我现在的想法:

    [OperationContract]
    bool AddFile(byte[] filedata);
    [OperationContract]
    bool DeleteFile(int fileid);
    [OperationContract]
    byte[] GetFile(int fileid);

是否可以使用 WCF 服务进行上载和下载

定义要获取和返回Stream数据类型的方法,并确保将绑定配置为使用 TransferMode.Streamed 。此外,请确保注意绑定中使用的编码。如果您使用Text则所有二进制数据都将采用base64编码,这将使所有请求/响应的大小膨胀。如果使用 MTOM,则大型二进制数据(如流)将作为 HTTP 正文的单独实体作为纯、未编码的二进制数据传输到 SOAP 主体之外。二进制编码显然将通过线路提供最佳传输,但它不是标准格式,因此无法与其他非 WCF 堆栈互操作。如果你是纯 WCF,你无法击败二进制消息编码的性能,所以我强烈建议你这样做,或者如果你需要互操作,可以回退到 MTOM。

另外,到目前为止,我在某种程度上假设您正在尝试在 SOAP 领域内执行此操作。如果您使用的是 REST,那么 XML 与 MTOM 与二进制编码将得到缓解,因为您可以发送/接收具有适当内容类型的纯二进制 HTTP 正文。一切都取决于你想做什么