Melhor prática para o cliente WCF Duplex
Não posso negar o benefício de desempenho de uma chamada assíncrona duplex, mas algumas coisas me fazem sentir desconfiad
Minha preocupação é que, dado que um objeto cliente é instanciado, o WCF poderá dizer qual instância específica do serviço de cliente receberá o argumento de retorno de chamad
Alguém pode me dizer se é uma boa ideia? Se não, por que não?
new DuplexChannelFactory<IServerWithCallback>(
new ClientService(),
new NetTcpBinding(),
new EndpointAddress("net.tcp://localhost:1234/"+Guid.NewGuid()))
Se o caminho virtual acima é reservado, como pode ser descartado. Quero que a vida útil do serviço ao cliente seja bastante curta. O IE faz uma solicitação e recebe uma resposta e, quando terminar de recebê-lo, mate-o. Quão ruim é a penalidade de desempenho ao reduzir a vida útil do serviço ao cliente, em vez de agrupá-lo e mantê-lo vivo por mais temp
A idéia é evitar problemas de tempo limite. Quando terminar de receber, enviar, descarte o mais rápido possível. Por convenção - não é possível transmitir os serviços ao cliente. Se você precisar de informações, crie um novo e simples - assim como EF / L2S etc.
No próprio serviço WCF, como eu mato a sessão com o cliente. ie Não quero que o cliente termine a sessão - sei que posso decorar minha operação adequadamente, mas quero que o serviço seja finalizado programaticamente quando certas condições forem atendida
Posso afixar a porta e encaminhar de acordo para resolver qualquer problema de firewall, mas o que me preocupa é se o cliente está sentado atrás de um balanceador de carga. Como o serviço saberia qual servidor específico chamar?