Question

Mon client m'a demandé de mettre en œuvre MTOM / XOP pour .NET Remoting via HTTP / SOAP pour l'accès à distance de flux (par exemple, le téléchargement de fichiers). services Web WCF dans pas une option.

Alors, ce que je dois faire est de modifier notre coutume SoapClientFormatterSink et SoapServerFormatterSink faire la méthode travail, c.-à-SerializeMessage, qui prend iMessage et si l'un des paramètres de message » valeur de type Stream, le nœud de XOP infoset est inséré dans le flux et ainsi de suite.

public class CompatibleSoapClientFormatterSink : IClientFormatterSink
{

  ...

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

   ...

  }

Le problème est que je ne comprends pas comment mettre en flux binaire requête SOAP et la mise en œuvre de cette approche en général.

Quelqu'un peut-il me donner des directives à comment puis-je mettre en œuvre s'il vous plaît?

Tout échantillon de code de mise en œuvre MTOM / XOP serait très apprécié.

Était-ce utile?

La solution

Désolé, les gars! Nether de vos réponses travail pour moi.

Je propose donc mon idée simple de la solution que j'avais déjà mis en œuvre.

je classes XmlMtomReader et XmlMtomWriter de l'espace de noms System.Xml pour formater les messages SOAP, puis les passer en avant à l'évier de formatter. couche de services Web WCF n'a pas été touché comme je le voulais.

Autres conseils

Je crois que l'équivalent Java de WCF (Metro) soutient XOP / MTOM, et il est open source. Vous pouvez prendre ce code et le port à .NET Remoting.

Voici quelqu'un qui a mis en œuvre le transfert de fichiers avec .net Remoting:

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

Le code source est disponible à partir d'un lien sur la page

Vous pouvez essayer:

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

Si vous avez un côté serveur java, vous pouvez regarder:

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

il y a un code en bas de la page pour le téléchargement.

Il y a des problèmes d'interopérabilité avec MMD entre les plates-formes: de nombreuses piles ne prennent pas en charge le mécanisme ws-politique que .NET utilise pour activer le MMD. A mon avis, cela est tout à fait indésirable pour l'interopérabilité. Ici, nous avons fini par tourner sur MMD MessageEncoding dans la section de liaison de la app.config.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top