2017-12-07 104 views
7

Klient nie może przywrócić połączenia z serwerem natychmiast po restarcie serwera. Zamiast tego przywraca połączenie tylko po 15 sekundach bezczynności. Nie mogę również wywołać serwera z nowo utworzonym kanałem/klientem z tego samego procesu. Ale udało się połączyć, jeśli uruchomię nową instancję klienta w oddzielnym procesie.grpc: Nie można przywrócić połączenia przez około 15 sekund po ponownym uruchomieniu serwera

Nie jestem pewien, ale załóżmy, że problem pojawił się po przejściu z wersji 1.0.0 na 1.6.1 grpc. Może wprowadzono jakieś nowe ustawienie, aby zmienić to zachowanie?

Mój stan połączenia:

0. Grpc.Core.Internal.CompletionQueueSafeHandle.Pluck (Source Unavailable) 
1. Grpc.Core.Internal.AsyncCall`2.UnaryCall (Source Unavailable) 
2. Grpc.Core.DefaultCallInvoker.BlockingUnaryCall (Source Unavailable) 
3. Grpc.Core.Internal.InterceptingCallInvoker.BlockingUnaryCall (Source Unavailable) 
+0

Czy próbowałeś powrócić do wersji 1.0.0, aby sprawdzić, czy jest ona powiązana? –

+0

Lub próbowałeś używać 1.7.1? –

Odpowiedz

0

Może jakieś nowe ustawienie zostało wprowadzone, aby zmienić to zachowanie?

Zajrzałem grpc release notes z 1.0.0 do 1.6.1 i stwierdzono następujące relevevant zmiany 1.6 note (sekcja C#):

koparki użytkownik nie działać na puli wątków Grpc jest już za dodatkowe bezpieczeństwo.

Może zajść potrzeba wprowadzenia korekty kodu w programie obsługi. Mam nadzieję, że to pomoże.