Pergunta

Meu cliente me pediu para implementar o MTOM/XOP para o .NET Remoting via HTTP/SOAP para acesso ao fluxo remoto (por exemplo, upload de arquivos). WCF Web Services em não uma opção.

Portanto, o que eu tenho a fazer é modificar nosso SOAPCLIENTMATIFORNATTERSTINGSTINGSTING e SOAPSERVERVERSTERSTINGSINKSLIND para fazer o trabalho, ou seja, o método Serializemessage, que leva o iMessage e se um dos parâmetros da mensagem 'Valor do Tipo Stream, o Nó do InfoP é inserido no fluxo e assim por diante.

public class CompatibleSoapClientFormatterSink : IClientFormatterSink
{

  ...

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

   ...

  }

O problema é que não entendo como colocar o fluxo binário em solicitação de sabão e implementação dessa abordagem em geral.

Alguém pode me dar orientação para como posso implementá -lo, por favor?

Qualquer amostra de código da implementação do MTOM/XOP seria muito apreciada.

Foi útil?

Solução

Desculpem rapazes! Nether de suas respostas funcionam para mim.

Então, proponho minha idéia simples da solução que eu já havia implementado.

Eu usei classes XMLMTOMReader e XMLMTOMWriter do espaço de nome System.xml para formatar mensagens de sabão e depois as passar para o coletor do formatador. O WCF Web Services Cayer não foi tocado como eu queria.

Outras dicas

Acredito que o equivalente Java do WCF (Metro) suporta XOP/MTOM, e é de código aberto. Você pode pegar esse código e portar -o para .Net Remoting.

Aqui está alguém que implementou a transferência de arquivos com o .NET REMOTING:

http://www.codeproject.com/kb/dotnet/net%5fremoting%5fevents.aspx

O código -fonte está disponível em um link na página

Você poderia tentar:

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

Se você tiver um servidor Java, poderá olhar:

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

Há algum código na parte inferior da página para download.

Existem alguns problemas de interoperabilidade com o MTOM entre as plataformas: muitas pilhas não suportam o mecanismo de política WS que o .NET usa para ativar o MTOM. Na minha opinião, isso é bastante indesejável para a interoperabilidade. Aqui, acabamos ativando o MTOM Messagencoding na seção de ligação do app.config.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top