【发布时间】:2010-08-12 00:23:08
【问题描述】:
在 .net Web 服务中,有一种方法可以在 SOAP 请求中发送文件名,并且服务在 SOAP 响应中将文件本身作为附件返回。我在想文件是否只能作为文件流对象或某种 .net I/O 相关对象返回,但不能作为附件返回。我被要求检查是否可以这样做?有什么想法或方法吗?
【问题讨论】:
-
抱歉,我不明白如何您究竟想要发送文件?
标签: .net web-services
在 .net Web 服务中,有一种方法可以在 SOAP 请求中发送文件名,并且服务在 SOAP 响应中将文件本身作为附件返回。我在想文件是否只能作为文件流对象或某种 .net I/O 相关对象返回,但不能作为附件返回。我被要求检查是否可以这样做?有什么想法或方法吗?
【问题讨论】:
标签: .net web-services
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,支持通过网络传输优化的二进制数据。
【讨论】:
MTOM的原因。