1
resposta

Xamarin PCL Android WFC Caindo Toda Hora

Fiz uma aplicação PCL e no porjeto Droid referenciei um serviço WCF, consegui acessar todas funções normalmente mas depois 5 ou 6 vezes entrando no App o serviço lança um erro de Timeout e só voltar funcionar quando eu reinicio o serviço no windows. Por favor me ajudem oque estou fazendo de errado?

1 resposta

Olá, Rodolfo

Acho que seria o caso de você monitorar o seu serviço WCF. Você tem acesso a ele?

Este artigo ajuda a configura esses logs:

https://docs.microsoft.com/pt-br/dotnet/framework/wcf/diagnostics/configuring-message-logging

Você pode aumentar a configuração do tempo de timeout no xml para se adequar à sua necessidade, por exemplo:

<system.serviceModel>
  <bindings>
    <netTcpBinding>
      <binding name="longTimeoutBinding"
        receiveTimeout="00:10:00" sendTimeout="00:10:00">
        <security mode="None"/>
      </binding>
    </netTcpBinding>
  </bindings>

  <services>
    <service name="longTimeoutService"
      behaviorConfiguration="longTimeoutBehavior">
      <endpoint address="net.tcp://localhost/longtimeout/"
        binding="netTcpBinding" bindingConfiguration="longTimeoutBinding" />
    </service>
....

Ou então você pode configurar o timeout via código C#, como por exemplo:

        ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService));

        WSHttpBinding binding = new WSHttpBinding();
        binding.OpenTimeout = new TimeSpan(0, 10, 0);
        binding.CloseTimeout = new TimeSpan(0, 10, 0);
        binding.SendTimeout = new TimeSpan(0, 10, 0);
        binding.ReceiveTimeout = new TimeSpan(0, 10, 0);

        serviceHost.AddServiceEndpoint("ICalculator", binding, baseAddress);
        serviceHost.Open();