Pregunta

Mi cliente me pidió que aplicar MTOM / XOP para .NET Remoting a través de HTTP / SOAP para el acceso remoto corriente (por ejemplo, carga de archivos). servicios web WCF en no es una opción.

Por lo tanto, lo que tengo que hacer es modificar nuestra costumbre SoapClientFormatterSink y SoapServerFormatterSink para hacer el trabajo, es decir, el método SerializeMessage, que tiene iMessage y si uno de los parámetros mensaje' valor de tipo corriente, el nodo XOP del conjunto de información se inserta en la corriente y así sucesivamente.

public class CompatibleSoapClientFormatterSink : IClientFormatterSink
{

  ...

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

   ...

  }

El problema es que no entiendo cómo poner flujo binario en la solicitud y la aplicación de este enfoque en general SOAP.

Puede alguien dar dirección a cómo puedo ponerlo en práctica por favor?

Cualquier ejemplo de código de aplicación MTOM / XOP sería muy apreciada.

¿Fue útil?

Solución

Lo siento, chicos! Nether de sus respuestas funciona para mí.

Así que propongo mi idea sencilla de la solución que ya había implementado.

He utilizado clases XmlMtomReader y XmlMtomWriter de System.XML espacio de nombres a los mensajes de formato de jabón y luego los paso hacia adelante al fregadero formateador. WCF capa de servicios web no fue tocado como quería.

Otros consejos

Creo que el equivalente Java de WCF (Metro) apoya XOP / masa máxima de despegue, y es de código abierto. Usted podría tomar ese código y portarlo a .NET Remoting.

Aquí es alguien que ha implementado la transferencia de archivos con .NET Remoting:

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

El código fuente está disponible de un enlace en la página

Usted podría intentar:

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

Si usted tiene un servidor del lado de Java usted podría mirar a:

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

hay algo de código en la parte inferior de la página para su descarga.

Hay algunos problemas de interoperabilidad con la masa máxima de despegue entre las plataformas: muchas pilas no son compatibles con el mecanismo de WS-política que .NET utiliza para encender masa máxima de despegue. A mi entender esto es muy indeseable para la interoperabilidad. Aquí se ha acabado convirtiendo en masa máxima de despegue messageEncoding en la sección de unión del app.config.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top