无法使用 gRPC 客户端连接到 Dapr自托管

问题描述

我正在开发一个应用程序,该应用程序连接使用 Dapr(自托管)和 gRPC 客户端运行的应用程序。我使用 common.proto 和 runtime.proto。使用 DAPR CLI 时,我能够使连接正常工作。

但是在使用 DAPR 自托管实例时,我在使用 gRPC 端口时收到以下错误

Grpc.Core.RpcException: 'Status(StatusCode="Internal",Detail="invoke API is not ready",DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1621435606.713000000","description":"Error received from peer ipv4:127.0.0.1:54000","file":"..\..\..\src\core\lib\surface\call.cc","file_line":1068,"grpc_message":"invoke API is not ready","grpc_status":13}")'

当我使用 dapr http 端口时

Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1621435606.713000000","grpc_status":13}")'

下面是DAPR服务器的撰写文件

version: '3.4'

services:
  daprserver:
    image: ${DOCKER_REGISTRY-}daprserver
    build:
      context: .
      dockerfile: Dockerfile        
    environment:
    - ASPNETCORE_ENVIRONMENT=Development
    - ASPNETCORE_URLS=http://+:80
    networks:
    - daprserver-network
  daprserver-dapr:
    image: "daprio/dapr:latest"
    command: [ "./daprd","-app-id","daprserver","-app-port","80","-dapr-http-port","53001","-dapr-grpc-port","53000"]
    ports:
    - 54000:53000 #grpc external:internal
    - 54001:53001 #http external:internal
    depends_on:
    - daprserver  
    networks:
    - daprserver-network
networks:
  daprserver-network:

客户端代码如下:

 var channel = new Channel("127.0.0.1:54000",ChannelCredentials.Insecure);
                var daprClient = new Dapr.Client.Autogen.Grpc.v1.Dapr.DaprClient(channel);
                var request = new InvokeServiceRequest
                {
                    Id = "daprserver",Message = new InvokeRequest
                    {
                        Method = "weatherforecast",HttpExtension = new HTTPExtension
                        {
                            Verb = HTTPExtension.Types.Verb.Get,}
                    }
                };

                var invokeResponse = daprClient.InvokeServiceAsync(request).GetAwaiter().GetResult();
                var json = invokeResponse.Data.Value.ToStringUtf8();
                

我是否缺少设置或我的配置有任何问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...