我的客户要求我通过HTTP/SOAP为.NET远程处理实现MTOM/XOP,以实现远程流访问(例如,文件上传)。WCF web服务不是一个选项。
因此,我要做的是修改我们的自定义SoapClientFormatterSink和SoapServerFormatterSink来完成这项工作,即SerializeMessage方法,该方法接受IMessage,如果消息参数值之一的流类型,XOP infoset的节点插入到流中,依此类推。
public class CompatibleSoapClientFormatterSink : IClientFormatterSink
{
...
private void SerializeMessage(IMessage message, out ITransportHeaders headers, out Stream stream)
{
...
}问题是我不明白如何将二进制流放入SOAP请求中,以及这种方法的一般实现。
有没有人能告诉我该如何实现它?
任何MTOM/XOP实现的代码样例都将不胜感激。
发布于 2009-11-02 18:25:17
抱歉,伙计们!你的答案对我都不起作用。
因此,我提出了我已经实现的解决方案的简单想法。
我使用了System.Xml命名空间中的XmlMtomReader和XmlMtomWriter类来格式化SOAP消息,然后将它们转发给格式化程序接收器。WCF web服务层没有像我想要的那样被触及。
发布于 2009-09-09 13:49:11
我相信WCF (Metro)的Java等价物支持XOP/MTOM,而且它是开源的。您可以将该代码移植到.NET Remoting。
发布于 2009-09-09 14:16:58
下面是使用.net remoting实现文件传输的人:
http://www.codeproject.com/KB/dotnet/Net%5FRemoting%5FEvents.aspx
源代码可以从页面上的链接中获得
https://stackoverflow.com/questions/1399726
复制相似问题