2

I am receiving the following error when trying to call a service using Dapr SDK.

System.Net.Http.HttpRequestException: Connection refused (127.0.0.1:3500)
 ---> System.Net.Sockets.SocketException (111): Connection refused

Here is my docker-compose settings of the service I am trying to call:

 quest-service:
    image: ${DOCKER_REGISTRY-gamification}/quest-service:${TAG:-latest}
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=http://0.0.0.0:80
      - SeqServerUrl=http://seq
    build:
      context: .
      dockerfile: Services/LW.Gamification.QuestService/Dockerfile
    ports:
      - "5110:80"
      - "50010:50001"

  quest-service-dapr:
    image: "daprio/daprd:latest"
    command: ["./daprd",
      "-app-id", "Quest-Service",
      "-app-port", "80",
      "-components-path", "/Components",
      "-config", "/Configuration/config.yaml"
      ]
    volumes:
      - "./Dapr/Components/:/Components"
      - "./Dapr/Configuration/:/Configuration"
    depends_on:
      - quest-service
    network_mode: "service:quest-service"

And the settings for the caller:

player-service:
    image: ${DOCKER_REGISTRY-gamification}/player-service:${TAG:-latest}
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=http://0.0.0.0:80
      - SeqServerUrl=http://seq
    build:
      context: .
      dockerfile: Services/LW.Gamificaiton.PlayerService/Dockerfile
    ports:
      - "5109:80"
      - "50009:50001"

  player-service-dapr:
    image: "daprio/daprd:latest"
    command: ["./daprd",
      "-app-id", "Player-Service",
      "-app-port", "80",
      "-components-path", "/Components",
      "-config", "/Configuration/config.yaml"
      ]
    volumes:
      - "./Dapr/Components/:/Components"
      - "./Dapr/Configuration/:/Configuration"
    depends_on:
      - player-service
    network_mode: "service:player-service"

And here is the code that is failing to work:

            // demo service to service call
            var httpClient = DaprClient.CreateInvokeHttpClient("Quest-Service");
            var requestUri = $"api/v1/Quest";

            var result = await httpClient.GetFromJsonAsync<IEnumerable<string>>(requestUri);

Note: Messaging is working fine. :-)

I am new to Dapr so I must be doing something silly wrong, maybe something to do with ports.. I just don't know!

Choco
  • 1,189
  • 1
  • 14
  • 29

1 Answers1

1

From following this question :Dapr Client Docker Compose Issue

I managed to get this partly working using the following docker-compose config:

services:
  placement:
    image: "daprio/dapr"
    command: ["./placement", "-port", "50000", "-log-level", "debug"]
    ports:
      - "50000:50000"

  quest-service:
    image: ${DOCKER_REGISTRY-gamification}/quest-service:${TAG:-latest}
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=http://0.0.0.0:80
      - SeqServerUrl=http://seq
      - DAPR_GRPC_PORT=50010
    build:
      context: .
      dockerfile: Services/LW.Gamification.QuestService/Dockerfile
    ports:
      - "5110:80"
      - "50010:50010"
    depends_on:
      - placement
      - rabbitmq
      - redis
      - seq
      - zipkin

  quest-service-dapr:
    image: "daprio/daprd:latest"
    command: ["./daprd",
      "-app-id", "Quest-Service",
      "-app-port", "80",
      "-placement-host-address", "placement:50000",
      "-dapr-grpc-port", "50010",
      "-components-path", "/Components",
      "-config", "/Configuration/config.yaml"
      ]
    volumes:
      - "./Dapr/Components/:/Components"
      - "./Dapr/Configuration/:/Configuration"
    depends_on:
      - quest-service
    network_mode: "service:quest-service"

  generatetraffic:
    image: ${DOCKER_REGISTRY-gamification}/generatetraffic:${TAG:-latest}
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=http://0.0.0.0:80
      - SeqServerUrl=http://seq
      - DAPR_GRPC_PORT=50017
    build:
      context: .
      dockerfile: Services/LW.Gamification.GenerateTraffic/Dockerfile
    ports:
      - "5117:80"
      - "50017:50017"
    depends_on:
      - placement
      - rabbitmq
      - redis
      - seq
      - zipkin
      
  generatetraffic-dapr:
    image: "daprio/daprd:latest"
    command: ["./daprd",
      "-app-id", "Generate-Traffic",
      "-app-port", "80",
      "-placement-host-address", "placement:50000",
      "-dapr-grpc-port", "50017",
      "-components-path", "/Components",
      "-config", "/Configuration/config.yaml"
      ]
    volumes:
      - "./Dapr/Components/:/Components"
      - "./Dapr/Configuration/:/Configuration"
    depends_on:
      - generatetraffic
    network_mode: "service:generatetraffic"



However I still have issues with some of the documented APIs not working!.

    var httpClient = DaprClient.CreateInvokeHttpClient("Quest-Service");
    var requestUri = $"api/v1/Quest";       
    var result = await httpClient.GetAsync(requestUri);

Still fails?

Choco
  • 1,189
  • 1
  • 14
  • 29