title: Exception "failed to connect to all addresses" in gRpc Unity3D client and ASP.Net core server
body: <p>I tested grcp asp.net server with console client and it is working. Sure first problems was with certification, but after install certification on client it start work.</p>
  <p>Now I'm testing same server with new client that is Unity3D version 2021.1.2f1. I set project to .NET 4.x like in tutorial. Install plugins grcp for unity. But something go wrong. I feel that may be there is problem with certification, but is there way to install certification for unity client? Unity not support http2, so may be I need configurate this in server and client, or it configurate automatically? May be problem in something another but I can't imagine in what.</p>
  <p>I'm getting exception below.</p>
  <pre><code>RpcException: Status(StatusCode=&quot;Unavailable&quot;, Detail=&quot;failed to connect to all addresses&quot;, DebugException=&quot;Grpc.Core.Internal.CoreErrorDetailException: {&quot;created&quot;:&quot;@1626079380.128000000&quot;,&quot;description&quot;:&quot;Failed to pick subchannel&quot;,&quot;file&quot;:&quot;..\..\..\src\core\ext\filters\client_channel\client_channel.cc&quot;,&quot;file_line&quot;:3009,&quot;referenced_errors&quot;:[{&quot;created&quot;:&quot;@1626079380.128000000&quot;,&quot;description&quot;:&quot;failed to connect to all addresses&quot;,&quot;file&quot;:&quot;..\..\..\src\core\ext\filters\client_channel\lb_policy\pick_first\pick_first.cc&quot;,&quot;file_line&quot;:398,&quot;grpc_status&quot;:14}]}&quot;)
  System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at &lt;695d1cc93cca45069c528c15c9fdd749&gt;:0)
  System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at &lt;695d1cc93cca45069c528c15c9fdd749&gt;:0)
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at &lt;695d1cc93cca45069c528c15c9fdd749&gt;:0)
  System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at &lt;695d1cc93cca45069c528c15c9fdd749&gt;:0)
  System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () (at &lt;695d1cc93cca45069c528c15c9fdd749&gt;:0)
  GameManager+&lt;Start&gt;d__1.MoveNext () (at Assets/GameManager.cs:29)
  --- End of stack trace from previous location where exception was thrown ---
  System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at &lt;695d1cc93cca45069c528c15c9fdd749&gt;:0)
  System.Runtime.CompilerServices.AsyncMethodBuilderCore+&lt;&gt;c.&lt;ThrowAsync&gt;b__6_0 (System.Object state) (at &lt;695d1cc93cca45069c528c15c9fdd749&gt;:0)
  UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at &lt;9244fb8344e84288877b43b45b29c242&gt;:0)
  UnityEngine.UnitySynchronizationContext:ExecuteTasks()
  </code></pre>
  <p>Proto file</p>
  <pre><code>syntax = &quot;proto3&quot;;
  
  option csharp_namespace = &quot;GameNetRpc&quot;;
  
  package game;
  
  service GameNet {
    rpc SayHello (HelloRequest) returns (HelloReply);
  }
  
  message HelloRequest {
    string name = 1;
  }
  
  message HelloReply {
    string message = 1;
  }
  </code></pre>
  <p>Launch setting</p>
  <pre><code>{
    &quot;profiles&quot;: {
      &quot;AspGrpcServer&quot;: {
        &quot;commandName&quot;: &quot;Project&quot;,
        &quot;dotnetRunMessages&quot;: &quot;true&quot;,
        &quot;launchBrowser&quot;: false,
        &quot;applicationUrl&quot;: &quot;http://localhost:5000;https://localhost:5001&quot;,
        &quot;environmentVariables&quot;: {
          &quot;ASPNETCORE_ENVIRONMENT&quot;: &quot;Development&quot;
        }
      }
    }
  }
  </code></pre>
  <p>Client code</p>
  <pre><code>using GameNetRpc;
  using Grpc.Core;
  using UnityEngine;
  
  public class GameManager : MonoBehaviour
  {
      private Channel _channel;
      private async void Start()
      {
          _channel = new Channel(&quot;localhost&quot;, 5001, ChannelCredentials.Insecure);
          var client = new GameNet.GameNetClient(_channel);
          var reply = await client.SayHelloAsync(new HelloRequest { Name = &quot;Client unity&quot; });
          Debug.Log(&quot;Response from server: &quot; + reply.Message);
      }
  
      private void OnDestroy()
      {
          _channel.ShutdownAsync().Wait();
      }
  }
  </code></pre>