141x
005768
2026-01-07

Como verificar a acessibilidade do servidor gRPC e resolver problemas de portas?

Como verificar a acessibilidade do servidor gRPC e resolver problemas de portas?


Resposta:

Para determinar a causa dos problemas de conexão com o servidor, devem ser esclarecidas as seguintes questões:

O servidor gRPC está em execução?

O servidor gRPC roda por padrão em uma porta local (por exemplo, 9000). Se o servidor está acessível, pode ser facilmente verificado através do PowerShell.

Comando no PowerShell: Test-NetConnection 127.0.0.1 -Port 9000

Saída típica: ComputerName : 127.0.0.1 RemoteAddress : 127.0.0.1 RemotePort : 9000 InterfaceAlias : Loopback Pseudo-Interface 1 SourceAddress : 127.0.0.1 TcpTestSucceeded : True

Importante: Se TcpTestSucceeded : True for exibido, o servidor gRPC está acessível e em execução. Se for False, o servidor não foi iniciado ou a porta não está disponível.

O que significa um erro de conexão gRPC ao estabelecer uma conexão?

No ambiente FEP, pode ocorrer que ao estabelecer a conexão gRPC apareça a seguinte mensagem de erro (à primeira vista críptica):

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)

Possível causa: A porta configurada (por exemplo, 9000) já está em uso por outro processo. Nesse caso, o servidor gRPC não consegue realizar o handshake HTTP/2 corretamente.

Como posso verificar se uma porta já está em uso?

Através do comando netstat no PowerShell, todos os processos que utilizam uma determinada porta podem ser exibidos.

Comando no PowerShell: netstat -ano | findstr :9000

Saída de exemplo: Proto Local Address Foreign Address State PID TCP 0.0.0.0:9000 0.0.0.0:0 LISTENING 17616

Significado das colunas: Local Address: Endereço IP e porta local State: Status (por exemplo, LISTENING) PID: ID do processo que está usando a porta

Como descubro qual processo está utilizando uma determinada porta?

Com o PID determinado, o processo associado pode ser consultado através do PowerShell para obter, entre outras coisas, o nome do processo e mais detalhes.

Comando no PowerShell: get-process -id 17616

Info: Alternativamente, o processo também pode ser identificado através do Gerenciador de Tarefas do Windows usando o PID.

Soluções recomendadas

  • Configurar uma porta alternativa e livre para o servidor gRPC
  • Ou (se possível) ajustar a configuração de porta do software bloqueante
  • Após a alteração, reiniciar o servidor e testar a conexão

Autor

O Sr. Milrath cuida das preocupações dos nossos usuários no suporte ao cliente.



;