如何从WCF Restful json webservice返回流和文件长度?

时间:2011-09-25 23:26:12

标签: c# asp.net wcf rest multipart

Hihi all,

我可以从我的WCF restful json webservice返回流,一切正常。但是当我将流与另一个数据混合(都包装到自定义类中)时,在从客户端使用Web服务时,它会显示“现有连接被远程主机强行关闭”的错误消息。

任何建议我如何才能实现上述目标?我的webservice所需要的是允许下载一个文件长度的文件作为额外的信息,以便在客户端进行验证。

提前致谢! :)

1 个答案:

答案 0 :(得分:2)

在WCF服务合同中使用Stream时存在各种限制 - 根据this MDSN link,在流式传输时只能使用一个(输出)参数或返回值(类型为流)。

在另一个MSDN documentation中(无论如何这是一个很好的资源,如果你想使用WCF传输大数据),已经暗示可以使用Message Contract将流和一些输入/输出数据组合在一起。 例如,请参阅this blog post,其中作者使用显式邮件合同来上传文件名和文件名。档案数据。你必须从下载角度做类似的事情。

最后,如果没有任何作用,那么您始终可以将文件长度作为自定义(或标准内容长度)HTTP标头推送。如果您在IIS中托管,则启用ASP.NET兼容性并使用HttpContext.Current.Response添加自定义标头。