2009-09-09 48 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。