1

私の顧客は、リモートストリームアクセス(ファイルのアップロードなど)のためにHTTP/SOAPを介して.NETRemotingにMTOM/XOPを実装するように依頼しました。WCFWebサービスはオプションではありません。

したがって、私がしなければならないのは、カスタムSoapClientFormatterSinkとSoapServerFormatterSinkを変更して、ジョブを実行することです。つまり、IMessageを受け取るSerializeMessageメソッドと、Stream型のメッセージパラメーターの値の1つである場合、XOPinfosetのノードがstreamに挿入されます。

public class CompatibleSoapClientFormatterSink : IClientFormatterSink
{

  ...

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

   ...

  }

問題は、バイナリストリームをSOAPリクエストに入れる方法と、このアプローチの一般的な実装を理解していないことです。

誰かが私にそれをどのように実装するかについての指示を与えることができますか?

MTOM/XOP実装のコードサンプルをいただければ幸いです。

4

4 に答える 4

1

すみません、みんな!あなたの答えのネザーは私のために働きます。

そこで、私はすでに実装したソリューションの簡単なアイデアを提案します。

System.Xml名前空間のXmlMtomReaderクラスとXmlMtomWriterクラスを使用してSOAPメッセージをフォーマットし、それらをフォーマッターシンクに渡しました。WCF Webサービスレイヤーは、私が望んでいたように変更されませんでした。

于 2009-11-02T10:25:16.870 に答える
0

Java Equivalent of WCF(Metro)はXOP / MTOMをサポートしており、オープンソースであると思います。そのコードを取得して、.NETRemotingに移植できます。

于 2009-09-09T13:49:10.800 に答える
0

.netリモーティングを使用してファイル転送を実装した人は次のとおりです。

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

ソースコードはページ上のリンクから入手できます

于 2009-09-09T14:16:57.753 に答える
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のバインディングセクションでMTOMmessageEncodingをオンにすることになりました。

于 2009-10-30T18:38:58.980 に答える