141x
005768
2026-01-07

Sprawdzanie dostępności serwera gRPC i rozwiązywanie problemów z portami

Jak mogę sprawdzić dostępność gRPC Server i rozwiązać problemy z portami?


Odpowiedź:

Aby ustalić przyczynę problemów z połączeniem z serwerem, należy rozważyć następujące pytania:

Czy serwer gRPC działa?

Serwer gRPC działa domyślnie na lokalnym porcie (np. 9000). Czy serwer jest osiągalny, można łatwo sprawdzić za pomocą PowerShell.

Polecenie w PowerShell:
Test-NetConnection 127.0.0.1 -Port 9000

Typowa odpowiedź:
ComputerName : 127.0.0.1
RemoteAddress : 127.0.0.1
RemotePort : 9000
InterfaceAlias : Loopback Pseudo-Interface 1
SourceAddress : 127.0.0.1
TcpTestSucceeded : True

Ważne:
Jeżeli TcpTestSucceeded : True zostanie wyświetlone, serwer gRPC jest osiągalny i działa.
W przypadku False, serwer nie jest uruchomiony albo port nie jest dostępny.

Co oznacza błąd połączenia gRPC podczas nawiązywania połączenia?

W środowisku FEP może się zdarzyć, że podczas nawiązywania połączenia gRPC pojawi się następujący (na pierwszy rzut oka kryptograficzny) komunikat o błędzie:

gRPC Connection error: Unavailable - Error starting gRPC call.
HttpRequestException: An HTTP/2 connection could not be established because
the server did not complete the HTTP/2 handshake. (InvalidResponse)
HttpIOException: The response ended prematurely while waiting for the next frame
from the server. (ResponseEnded)

Możliwa przyczyna:
Skonfigurowany port (np. 9000) jest już zajęty przez inny proces. W takim przypadku serwer gRPC nie może prawidłowo przeprowadzić handshake HTTP/2.

Jak mogę sprawdzić, czy port jest już zajęty?

Za pomocą polecenia netstat w PowerShell można wyświetlić wszystkie procesy, które wykorzystują konkretny port.

Polecenie w PowerShell:
netstat -ano | findstr :9000

Przykładowa odpowiedź:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:9000 0.0.0.0:0 LISTENING 17616

Znaczenie kolumn:
Local Address: Lokalny IP i port
State: Stan (np. LISTENING)
PID: ID procesu, który zajmuje port

Jak mogę ustalić, który proces używa danego portu?

Za pomocą ustalonego PID można w PowerShell uzyskać informacje o odpowiednim procesie, aby m.in. uzyskać nazwę procesu i inne szczegóły.

Polecenie w PowerShell:
get-process -id 17616

Informacje:
Alternatywnie, proces można zidentyfikować za pomocą Menedżera zadań systemu Windows za pomocą PID.

Zalecane rozwiązania

  • Skonfigurowanie alternatywnego, wolnego portu dla serwera gRPC
  • Lub (jeśli to możliwe) dostosowanie konfiguracji portu blokującego oprogramowania
  • Po zmianie ponownie uruchom serwer i przetestuj połączenie

Autor

Pan Milrath zajmuje się sprawami naszych użytkowników w dziale wsparcia klienta.



;