Я запускаю сервер gRPC на своем локальном компьютере, используя имя компьютера в качестве имени хоста:
new ServerPort("MyMachine", 9017, ServerCredentials.Insecure),
Я запускаю этот код сервера через Visual Studio.Затем я могу нормально подключиться к этой конечной точке gRPC, запустив клиентское приложение, также из VS:
var channel = new Channel("MyMachine: 9017", ChannelCredentials.Insecure);
Я могу успешно вызвать простой API "ping".Я также могу telnet MyMachine 9017
без ошибок.
Однако, когда я пытаюсь подключиться из другого приложения (LINQPad), я получаю сообщение об ошибке:
RpcException: Status(StatusCode=Unavailable, Detail="Name resolution failure")
Канал gRPC для "каналаapi, handshaker, op_failure "выглядит следующим образом:
I0308 16:34:56.919349 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\init.cc:155: grpc_init(void)
I0308 16:34:56.919349 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\ext\transport\chttp2\client\insecure\channel_create.cc:91: grpc_insecure_channel_create(target=MyMachine:9017, args=00000208CD5C3D60, reserved=0000000000000000)
I0308 16:34:56.919349 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\channel.cc:285: grpc_channel_get_target(channel=00000208CD6D47C0)
I0308 16:34:58.578574 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc:1905: grpc_call_start_batch(call=00000208CD6F6020, ops=0000003041F7C790, nops=6, tag=00000208CD6BC440, reserved=0000000000000000)
I0308 16:34:58.578574 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc:1511: ops[0]: SEND_INITIAL_METADATA(nil)
I0308 16:34:58.578574 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc:1511: ops[1]: SEND_MESSAGE ptr=00000208CD541EC0
I0308 16:34:58.578574 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc:1511: ops[2]: SEND_CLOSE_FROM_CLIENT
I0308 16:34:58.578574 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc:1511: ops[3]: RECV_INITIAL_METADATA ptr=00000208CD6BC478
I0308 16:34:58.578574 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc:1511: ops[4]: RECV_MESSAGE ptr=00000208CD6BC490
I0308 16:34:58.578574 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc:1511: ops[5]: RECV_STATUS_ON_CLIENT metadata=00000208CD6BC498 status=00000208CD6BC4B0 details=00000208CD6BC4B8
I0308 16:34:58.588581 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\completion_queue.cc:699: cq_end_op_for_next(cq=00000208CD5815A0, tag=00000208CD6BC440, error="No Error", done=00007FF849B55C60, done_arg=00000208CD6F6F20, storage=00000208CD6F6F70)
I0308 16:34:58.588581 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\completion_queue.cc:1059: RETURN_EVENT[00000208CD5815A0]: OP_COMPLETE: tag:00000208CD6BC440 OK
I0308 16:34:58.588581 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\completion_queue.cc:959: grpc_completion_queue_next(cq=00000208CD5815A0, deadline=gpr_timespec { tv_sec: 9223372036854775807, tv_nsec: 0, clock_type: 1 }, reserved=0000000000000000)
I0308 16:34:58.618583 0 T:\src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc:562: grpc_call_unref(c=00000208CD6F6020)
Буквально написано" без ошибок ", поэтому я очень растерялся относительно того, что здесь происходит.Может кто-нибудь сказать мне, почему я могу подключиться при запуске от VS, но не снаружи?