在.net Web服务中,有一种方法可以在SOAP请求中发送文件名,并且服务将File本身作为SOAP响应中的附件返回。我在想是否只能将文件作为文件流对象或某种.net I / O相关对象返回,而不是作为附件返回。我被要求检查是否可以这样做?有什么想法或意见吗?
答案 0 :(得分:3)
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,它支持通过线路优化的二进制数据传输。