none
Todo acesso ao servidor WCF retorna socket connection aborted RRS feed

  • Pergunta

  • O erro é esse! É timeout apenas? onde posso arrumar isso?

    The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:00:59.5890000'.


    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    terça-feira, 6 de abril de 2010 21:37

Respostas

  • Simples (pelo menos agora que descobri o problema).

     

    Uma classe que era utilizada como classe base para outra classe, estava sendo transferida do servidor para o cliente, dentro da fault (fault.source) e esta classe base NÃO estava com os atributos DataContract e DataMember.

    Ai não da né? Volta já pras vídeo aulas do Israel Aece e ve se aprende moleque! Shame on me.

    Valeu por tentar ajudar Israel! Grande abraço!


    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 7 de abril de 2010 21:47

Todas as Respostas

  • quarta-feira, 7 de abril de 2010 00:06
    Moderador
  • Não resolveu Israel.

    De um lado disparei uma Fault. Ja tinha feito isso em um outro projeto (antigo) e funcionava. Agora não sei o que deu de errado.

    Pensei que era só disparar uma Throw da faultexception que o client receberia na boa, mas não. no client chega aquele erro de socket! Pode ser alguma outra coisa?

     

    RegisterUserFault

     

     

    fault = new RegisterUserFault(ex.Message, ex);

     

     

    throw new FaultException<RegisterUserFault>(fault, ex.Message);


    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 7 de abril de 2010 12:59
  • é alguma outra coisa. Nao se passa 1 minuto para ele reclamar de timeout, aumentei pra uma hora e nao funcionou.

     

    The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:59:59.7990000'.

     

    deve ser pq esstou retornando uma fault, como posso fazer funcionar isso?


    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 7 de abril de 2010 14:03
  • Boas Leandro,

    O que faz no teu serviço? Como está expondo e consumindo ele?
    http://www.israelaece.com
    quarta-feira, 7 de abril de 2010 17:29
    Moderador
  • Tenho um Serviço Windows que expõe ele. O serviço inicia normalmente. Consigo dar um ATTACH no serviço também.

    Depois rodo a aplicação cliente. Rodo normal, clico no botão logar e ao tentar logar, ele passa os dados pro host do serviço, até ai tudo bem, ele manda pro projeto de regra de negócio que antes de registrar um usuário no servidor, verifica se o login e senha estão corretos. Pra isso, ele aplica uma consulta no banco! TUDO OK. Ele retorna que nao pode logar, a regra de negócio dispara uma exceçao tipo InvalidCredentialsException. La na classe que uso de dispatcher (é assim que se fala o lugar que é o endpoint?) eu tenho try catchs, que transforman o Exception em uma fault do tipo InvalidCredentialsFaultException e dou o throw mostrado acima.

    Até ai rodou ok os debugs, quando vai voltar pro client side, ele da o erro mostrado. Detalhe que eu aumentei pra 1 hora e mostra ali ainda que o timeout foi de 59:sei la quantos minutos, Ou seja, por mais que leve 5 segundos toda a operação que descrevi ele diz q estourou o timeout.

    Estou perdido


    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 7 de abril de 2010 18:36
  • Isreal, retirei todas as faults e puz um retorno fixo pra função e agora funcioonou! ;/

    o que pode ser??


    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 7 de abril de 2010 21:29
  • Simples (pelo menos agora que descobri o problema).

     

    Uma classe que era utilizada como classe base para outra classe, estava sendo transferida do servidor para o cliente, dentro da fault (fault.source) e esta classe base NÃO estava com os atributos DataContract e DataMember.

    Ai não da né? Volta já pras vídeo aulas do Israel Aece e ve se aprende moleque! Shame on me.

    Valeu por tentar ajudar Israel! Grande abraço!


    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 7 de abril de 2010 21:47
  • Boas Leandro,

    Na verdade, esses atributos são obrigatórios antes do SP1 do .NET 3.5. A partir do 3.5, você pode omitir isso: http://www.israelaece.com/post/Melhorias-no-WCF-com-SP1.aspx
    http://www.israelaece.com
    quinta-feira, 8 de abril de 2010 13:22
    Moderador
  • Boas Leandro,

    Na verdade, esses atributos são obrigatórios antes do SP1 do .NET 3.5. A partir do 3.5, você pode omitir isso: http://www.israelaece.com/post/Melhorias-no-WCF-com-SP1.aspx
    http://www.israelaece.com

    Estou utilizando o VS2010! Não baxei SP1 do .net, mas as atualizaçoes automaticas do Windows 7 estão todas feitas. Então acabo não sabendo se esta SP1 ou não, mas colocando esses atributos o erro parou de acontecer!
    :)
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quinta-feira, 8 de abril de 2010 14:56