Pergunta

Eu estou tendo alguns problemas com minhas conexões de servidor e cliente WCF.

Se eu usar meu serviço e cliente, normalmente, o que significa meus conecta clientes e desconecta através de operações normais (myclient.Close ()) tudo funciona bem. Mas, no exemplo que eu tenho o servidor rodando e eu usar o estúdio visual "Stop" botão para sair do meu aplicativo cliente, o meu servidor e cliente de comunicações parece atrapalhar e o servidor não limpar a conexão corretamente e novas conexões do meu cliente são muito instáveis ??e apenas algumas chamadas de funções de trabalho até que uma função irá lançar uma exceção de:

System.ServiceModel.CommunicationException: Ocorreu um erro ao receber a resposta HTTP para http: // localhost: 8080 / Design_Time_Addresses / Service_Beta1 / Service. Isto pode ser devido à ligação não usando o protocolo HTTP terminal de serviço. Isso também poderia ser devido a um contexto de solicitação HTTP a ser abortada pelo servidor (possivelmente devido ao serviço de desligar). Veja os logs do servidor para obter mais detalhes. ---> System.Net.WebException: A ligação subjacente foi fechada:. Ocorreu um erro inesperado em um recebimento

E muitas outras exceções, depois disso, e eu vou poupá-lo de ler aqueles.

Se eu desligar o servidor e cliente e reinicie ambos, todas as minhas chamadas trabalho bem até eu fazer o drástica "Stop" no visual studio. Como posso forçar o servidor para limpar conexões indevidamente fechadas? Eu sei que na produção no botão "Stop" é ido e, em teoria, não deve haver problemas, mas eu não quero ter problemas de conexão do servidor de acidentes de clientes ou maus desconecta. Porque inevitavelmente haverá casos. É melhor para corrigir isso agora antes que você tem mais de 20 clientes tentando se conectar e obter exceções.

Graças

Foi útil?

Solução

Desculpe por ter tomado tanto tempo para postar uma resposta. Meu problema é que eu estava passando para trás uma tabela de dados para o cliente, mas não estava dando a mesa um nome na criação. Veja abaixo.

Dim dt As New DataTable() 'Passing just a blank un-named table to client gave errors.
Dim dt As New DataTable("Table") 'Naming the table like so passes just fine.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top