Docker compose 无法使用gRPC客户端连接到Dapr(自托管)
我正在开发一个应用程序,该应用程序连接使用Dapr自托管和gRPC客户端运行的应用程序。我使用common.proto和runtime.proto。使用DAPR CLI时,我能够使连接正常工作 但在使用DAPR自托管实例时,我在使用gRPC端口时遇到以下错误: Grpc.Core.RPCEException:'StatusStatusCode=Internal,Detail=invoke API未准备就绪,DebugException=Grpc.Core.Internal.CoreErrorDetailException:{已创建:@1621435606.713000000,描述:从对等ipv4:127.0.0.1:54000接收到错误,文件:…\\..\src\Core\lib\surface\call.cc,文件行:1068,Grpc\消息:invoke API未准备就绪,Grpc\状态:13}' 当我使用dapr http端口时Docker compose 无法使用gRPC客户端连接到Dapr(自托管),docker-compose,dapr,Docker Compose,Dapr,我正在开发一个应用程序,该应用程序连接使用Dapr自托管和gRPC客户端运行的应用程序。我使用common.proto和runtime.proto。使用DAPR CLI时,我能够使连接正常工作 但在使用DAPR自托管实例时,我在使用gRPC端口时遇到以下错误: Grpc.Core.RPCEException:'StatusStatusCode=Internal,Detail=invoke API未准备就绪,DebugException=Grpc.Core.Internal.CoreErrorDe
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服务器的撰写文件
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();
我是否缺少设置或配置有任何问题