2009-09-09 47 views
0

我的客户要求我通过HTTP/SOAP为远程流访问(例如文件上传)实施MTOM/XOP for .NET Remoting。 WCF Web服务不是一个选项。.net remoting的MTOM/XOP实现

所以,我要做的就是改变我们的习惯SoapClientFormatterSink和SoapServerFormatterSink做的工作,即SerializeMessage方法,这需要即时聊天,如果Stream类型的消息参数之一的价值,XOP信息集的节点插入流等等。

public class CompatibleSoapClientFormatterSink : IClientFormatterSink 
{ 

    ... 

    private void SerializeMessage(IMessage message, out ITransportHeaders headers, out  Stream stream) 
    { 

    ... 

    } 

问题是我不明白如何将二进制流放入SOAP请求和一般执行此方法。

有人可以给我指示,我该如何执行它?

MTOM/XOP实现的任何代码示例将不胜感激。

回答

1

对不起,伙计们!你的答案虚空为我工作。

因此,我提出了我已经实施的解决方案的简单想法。

我使用System.Xml命名空间中的XmlMtomReader和XmlMtomWriter类来格式化SOAP消息,然后将它们传递给格式化程序接收器。 WCF Web服务层没有被触及,因为我想。

0

我相信WCF(Metro)的Java Equivalent支持XOP/MTOM,它是开源的。您可以将该代码移植到.NET Remoting中。

+0

我会考虑这个选项。谢谢。 – sh0gged 2009-09-09 14:36:14

0

你可以尝试:

http://dotnetslackers.com/articles/aspnet/GettingStartedCreatingWSEEnabledWebService.aspx

如果你有一个java服务器端,你可以看看:

https://jax-ws.dev.java.net/guide/Binary_Attachments__MTOM_.html

有在下载页面底部的一些代码。

平台之间的MTOM存在一些互操作性问题:许多堆栈不支持.NET用于打开MTOM的ws-policy机制。在我看来,这对于互操作性而言是非常不利的。在这里,我们已经结束了在app.config的绑定部分中打开MTOM messageEncoding。