141x
005768
2026-01-07

Проверка доступности gRPC-сервера и устранение проблем с портами

Проверка доступности gRPC-сервера и устранение проблем с портами


Ответ:

Чтобы определить причину проблем с подключением к серверу, следует выяснить следующие вопросы:

Запущен ли сервер gRPC?

Сервер gRPC по умолчанию работает на локальном порту (например, 9000). Проверить доступность сервера можно просто через PowerShell.

Команда в PowerShell:
Test-NetConnection 127.0.0.1 -Port 9000

Типичный вывод:
ComputerName : 127.0.0.1
RemoteAddress : 127.0.0.1
RemotePort : 9000
InterfaceAlias : Loopback Pseudo-Interface 1
SourceAddress : 127.0.0.1
TcpTestSucceeded : True

Важно:
Если TcpTestSucceeded : True отображается, сервер gRPC доступен и запущен.
При False сервер либо не запущен, либо порт недоступен.

Что означает ошибка подключения gRPC при установлении соединения?

В FEP-среде может возникнуть следующая ошибка (на первый взгляд кажущаяся загадочной) при установлении gRPC-соединения:

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)

Возможная причина:
Конфигурируемый порт (например, 9000) уже занят другим процессом. В этом случае сервер gRPC не может правильно выполнить HTTP/2-рукопожатие.

Как проверить, занят ли порт?

С помощью команды netstat в PowerShell можно отобразить все процессы, использующие определенный порт.

Команда в PowerShell:
netstat -ano | findstr :9000

Пример вывода:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:9000 0.0.0.0:0 LISTENING 17616

Значение столбцов:
Local Address: Локальный IP и порт
State: Состояние (например, LISTENING)
PID: Идентификатор процесса, занимающий порт

Как узнать, какой процесс использует определенный порт?

С помощью полученного PID в PowerShell можно запросить связанный процесс, чтобы получить, среди прочего, имя процесса и другие детали.

Команда в PowerShell:
get-process -id 17616

Информация:
В качестве альтернативы процесс также можно определить через диспетчер задач Windows по PID.

Рекомендуемые решения

  • Настроить альтернативный свободный порт для сервера gRPC
  • Или (если возможно) изменить конфигурацию порта блокирующего программного обеспечения
  • После изменения перезапустите сервер и протестируйте подключение

Автор

Господин Милрат занимается поддержкой клиентов и заботится о запросах наших пользователей.



;