Pergunta

Eu estou usando o canal WCF PollingDuplexHttpBinding para empurrar notificações para clientes Silverlight. Para a maior parte funciona bem, mas eu estou lutando para obter algumas funções de gerenciamento de sessão de base para funcionar corretamente.

O maior problema que eu tenho é tentar deixar o servidor sabe que o cliente tenha terminado com uma sessão e não requer quaisquer notificações. A chamada CloseAsync no cliente deixa de lado do cliente do canal de envio de pedidos de novas notificações apenas para a sessão e também envia uma solicitação CloseSession SOAP para o servidor. O problema é o lado do servidor do canal envia de volta a 404 dizendo que não reconhece a ação CloseSession. Tanto quanto eu posso ver que o erro é da parte interna do canal PollingDuplexHttpBinding e não fazê-lo até o aplicativo para que o fechamento da sessão pode ser devidamente cuidado.

Tem mais alguém se deparar com este problema e, talvez, encontrou uma maneira de contornar isso?

Foi útil?

Solução

Não pode ser feito pela aparência, Queixas sobre PollingDuplexHttpBinding .

Outras dicas

Bem que o artigo queixa foi simplesmente fantástico, e indiretamente resolvido um problema relacionado Eu tenho tido com o Silverlight trabalhando muito lentamente ao fazer Duplex sobre HTTP. Bsaically, o problema é causado por ter ASP.Net Estado de sessão ativada no site e usando pilha BroserHttp do Silverlight (em vez de ClientHttp pilha).

Yavor faz um bom trabalho (neste artigo) de explicar o problema:

http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having- a-pollingduplex-service-e-qualquer-outro-WCF-service-in-mesmo-site-causas-Silverlight chamadas-a-ser-slow.aspx

A correção simples, se você está tendo esse problema é registrar uma rota para a pilha ClientHttp antes de invocar o seu serviço. Isso pode ser feito simplesmente chamando:

WebRequest.RegisterPrefix(requestUri.AbsoluteUri, WebRequestCreator.ClientHttp);

Onde requestUri é um Uri do seu serviço. Espero que isso ajude.

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