如何创建返回文件(.xlsx)的 WCF 服务
Posted
技术标签:
【中文标题】如何创建返回文件(.xlsx)的 WCF 服务【英文标题】:How to create WCF service which returns file ( .xlsx) 【发布时间】:2019-06-09 03:22:09 【问题描述】:我在服务器位置有 xlsx 文件,我只想使用 WCF 服务将此文件返回给客户端。我不想作为流返回。
还有其他方法吗?
【问题讨论】:
我相信,如果您不使用序列化对象 (JSON/XML),流是从 WCF 服务传输数据的默认方式。为什么不想使用流?这是基于真实的推理还是仅仅因为缺乏技术理解? 由于我使用 K2 作为客户端应用程序,K2 无法理解流响应。 也许只是将文件作为字节数组返回? 能否添加您的 WCF 服务的代码(至少是创建流的部分)?假设 K2 理解 HTTP,我认为您将不得不使用流。我相信问题不在于 K2 不理解流(最后无论如何都是数据),而是您没有正确使用它。 【参考方案1】:您必须返回 Stream 并设置以下标头:
WebOperationContext.Current.OutgoingResponse.ContentType = "application/octet-stream";
WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition", $"attachment; filename=\"<name of the file>\"");
客户应该知道如何处理。
【讨论】:
以上是关于如何创建返回文件(.xlsx)的 WCF 服务的主要内容,如果未能解决你的问题,请参考以下文章
当操作返回元页面 html 时,如何更好地诊断 WCF 服务?