Que problemas devo esperar ao portar um aplicativo de canais genuínos para o WCF
-
20-09-2019 - |
Pergunta
Canais genuínos é um conjunto de chancels de terceiros para o .NET remoto.
Recebi as tarefas de substituir os usos do .NET remoto em um cliente e servidor Rick com o WCF. Estou familiarizado com os canais Remotos Remotos .NET padrão, mas não genuínos.
Então, que problemas devo esperar e algum ponteiro para as soluções?
Solução
Existem algumas características dos genuinechannels que foram os motivos pelos quais o usamos originalmente em relação ao .NET Standard Remoting:
- Funciona através da autenticação de proxies, enquanto o .NET remoto não
- Ele pode transmitir eventos no servidor e fazer com que os clientes os recebam
- Possui funcionalidade integrada para lidar com desconexões (relatando-as ao aplicativo por meio de eventos) e reconvenções automáticas
- Ele se integra intimamente à autenticação SSPI, mas também tem a capacidade de mudar isso para um mecanismo alternativo (é referido pelo GC como ZPA)
- Ele pode comprimir o tráfego entre o servidor e os clientes
- Ele pode criptografar o tráfego entre o servidor e os clientes (usando chamadas Win32 subjacentes)
- Possui verificação de integridade, que impede a modificação por um host intermediário
Ele também possui muitos outros recursos relacionados à segurança que seu aplicativo pode estar usando.
Não usei o WCF, então não sei se eles são suportados, mas deve fornecer uma lista inicial de coisas para verificar.
Outras dicas
O evento de envio para o cliente não é um comportamento natural do WCF. Você deve usar um contrato duplex, há algum conhecimento aqui:Enviando eventos do WCF Server
Além disso, o WCF é bem legal: você define o contrato de dados e o contrato de operação usando atributos e você tem um serviço em execução. Mais alguns cuidados devem ser tomados ao tentar serializar objetos circulares (mas são resolvidos) e o restante - você terá que encontrar enquanto está portando / aprendendo o WCF.
Existe uma maneira fácil - usar uma DLL compartilhada e da maneira mais difícil (mas quanto mais "SOA" amigável) - gerar um proxy do servidor para o cliente.
Juval Lowy - Este é um bom livro para começar, e o resto é googlable ....