141x
005768
7.1.2026

Kontrola dostupnosti serveru gRPC a řešení problémů s porty

Jak ověřím dostupnost serveru gRPC a vyřeším problémy s porty?


Odpověď:

Abychom zjistili příčinu problémů s připojením k serveru, je třeba si zodpovědět následující otázky:

Běží server gRPC?

Server gRPC běží ve výchozím nastavení na lokálním portu (např. 9000). Dostupnost serveru lze snadno ověřit pomocí PowerShellu.

Příkaz v PowerShellu:
Test-NetConnection 127.0.0.1 -Port 9000

Typický výstup:
ComputerName : 127.0.0.1
RemoteAddress : 127.0.0.1
RemotePort : 9000
InterfaceAlias : Loopback Pseudo-Interface 1
SourceAddress : 127.0.0.1
TcpTestSucceeded : True

Důležité:
Pokud se zobrazí TcpTestSucceeded : True, je server gRPC dostupný a běží.
V případě False není server spuštěn nebo není k dispozici port.

Co znamená chyba připojení gRPC při navazování spojení?

V prostředí FEP se může stát, že při navazování připojení gRPC se zobrazí následující (na první pohled kryptické) chybové hlášení:

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žná příčina:
Konfigurovaný port (např. 9000) je již obsazen jiným procesem. V takovém případě nemůže server gRPC správně provést handshake HTTP/2.

Jak mohu zkontrolovat, zda je port již obsazen?

Pomocí příkazu netstat v PowerShellu lze zobrazit všechny procesy, které používají konkrétní port.

Příkaz v PowerShellu:
netstat -ano | findstr :9000

Příklad výstupu:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:9000 0.0.0.0:0 LISTENING 17616

Význam sloupců:
Local Address: Lokální IP a port
State: Stav (např. LISTENING)
PID: ID procesu, který port obsazuje

Jak zjistím, který proces používá konkrétní port?

Pomocí zjištěného PID lze v PowerShellu vyhledat příslušný proces a zjistit mimo jiné jeho název a další podrobnosti.

Příkaz v PowerShellu:
get-process -id 17616

Info:
Proces lze alternativně identifikovat také pomocí Správce úloh systému Windows na základě PID.

Doporučená řešení

  • Nakonfigurujte alternativní volný port pro server gRPC.
  • Nebo (je-li to možné) upravte konfiguraci portů softwaru, který blokuje připojení.
  • Po provedení změny restartujte server a otestujte připojení.

Autor

Ing. Milrath vyřizuje v rámci zákaznické podpory podněty od uživatelů programů společnosti Dlubal Software.



;