【问题标题】:retrieve a file through .net webservice通过 .net 网络服务检索文件
【发布时间】:2010-08-12 00:23:08
【问题描述】:

在 .net Web 服务中,有一种方法可以在 SOAP 请求中发送文件名,并且服务在 SOAP 响应中将文件本身作为附件返回。我在想文件是否只能作为文件流对象或某种 .net I/O 相关对象返回,但不能作为附件返回。我被要求检查是否可以这样做?有什么想法或方法吗?

【问题讨论】:

  • 抱歉,我不明白如何您究竟想要发送文件?

标签: .net web-services


【解决方案1】:

attachment 是什么意思? SOAP 响应表示发送到客户端的 XML 编码数据。 byte[] 等二进制结构将被 base64 编码并在响应正文中发送。所以下面的方法应该可以完成这项工作:

[WebMethod]
public byte[] GetFile(string filename) 
{
    // Add security checks, etc... as such method is begging for hacks
    return File.ReadAllBytes(filename);
}

此外,您可能应该考虑使用WCF,因为 ASP.NET Web 服务现在被视为已弃用的技术。还有一些基于 HTTP 的协议,例如 MTOM,支持通过网络传输优化的二进制数据。

【讨论】:

  • +1,请记住,文件的 Base64 编码字符串可能是 HUGE
  • 是的,这就是我提到MTOM的原因。
猜你喜欢
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
相关资源
最近更新 更多