【问题标题】:MTOM/XOP implementation for .net remoting.net 远程处理的 MTOM/XOP 实现
【发布时间】:2009-09-09 13:35:45
【问题描述】:

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

所以,我要做的是修改我们的自定义 SoapClientFormatterSink 和 SoapServerFormatterSink 来完成这项工作,即 SerializeMessage 方法,它采用 IMessage 并且如果消息参数的值之一是 Stream 类型,XOP 信息集的节点被插入到流中,并且以此类推。

public class CompatibleSoapClientFormatterSink : IClientFormatterSink
{

  ...

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

   ...

  }

问题是我不明白如何将二进制流放入 SOAP 请求和这种方法的一般实现。

有人可以指导我如何实现它吗?

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

【问题讨论】:

    标签: c# soap remoting mtom .net-remoting


    【解决方案1】:

    对不起,伙计们!你的答案都不适合我。

    所以我提出了我已经实施的解决方案的简单想法。

    我使用 System.Xml 命名空间中的 XmlMtomReader 和 XmlMtomWriter 类来格式化 SOAP 消息,然后将它们转发到格式化程序接收器。 WCF Web 服务层没有按我的意愿进行。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我会考虑这个选项。谢谢。
      【解决方案3】:

      这里有人用 .net 远程处理实现了文件传输:

      http://www.codeproject.com/KB/dotnet/Net%5FRemoting%5FEvents.aspx

      源代码可从页面上的链接获得

      【讨论】:

      • 很棒的文章。感谢您的链接。虽然我使用的是 http 通道,而不是 tcp 通道。这意味着我必须处理一些肥皂扩展。
      【解决方案4】:

      你可以试试:

      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 消息编码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-30
        • 2012-01-23
        • 1970-01-01
        • 2012-03-05
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 2014-08-02
        相关资源
        最近更新 更多