【问题标题】:How to avoid a connection refused error on an API with Visual Studio and a docker container?如何避免使用 Visual Studio 和 docker 容器在 API 上出现连接被拒绝错误?
【发布时间】:2020-07-10 14:37:07
【问题描述】:

自从收容以来,我使用 VPN 在家工作,我无法为我的解决方案请求身份验证 API。

我正在开发一个带有两个 docker 容器的 .Net Core 应用程序,一个是应用程序,第二个是 DB2 数据库,我们有一个客户端给我们的身份验证 API,我们安装在我们的一台本地机器上。因此,一旦我通过 VPN 进行连接,我猜现在一切都在同一个网络中(我不是网络专家)。

现在,开发分支正在集成服务器和我同事的 PC 上工作,他也在家里通过 VPN 工作,所以我们在相同的条件下使用相同的代码。 但是在尝试进行身份验证时出现此错误:

唯一的区别应该来自我的环境,我确实有一些不同的东西: - 他的环境

还有我的:

如您所见,我已经配置了 http_proxy,但我不知道它来自哪里。它使 docker 容器无法访问 Internet,因此我使用 export http_proxy= 将其删除,然后能够使用 apt-get install iputils-ping 检索 ping 包。 使用此配置,我可以 ping 8.8.8.8,ping 安装 API 的本地计算机,甚至可以 curl http 身份验证 URL,但尝试在应用程序或 swagger 上启动身份验证时仍然无法连接。 我认为问题出在 Visual Studio 环境/配置、docker 容器和网络之间,但我不知道在哪里。

这是我的 docker-compose.yml :

version: '3.4'

services:
  db2server:
    env_file: .\DB2\env_file
    privileged: true
    build:
      context: .\DB2
    ports:
      - 50001:50001
      - 55001:55001
    volumes:
      - .\DB2\data:/database
      - .\DB2\scripts:/var/setup
      - .\DB2\sql:/var/sql
  openhostservice:
    build:
      context: .
      dockerfile: OpenHostService/Dockerfile
    image: ${DOCKER_REGISTRY-}openhostservice
    depends_on:
      - db2server
    ports:
      - 32780:80
networks:
    default:
        external:
            name: ******

我尝试了在全局 Windows 系统设置中使用和不使用代理配置,使用和不使用 http_proxy。

【问题讨论】:

    标签: visual-studio docker http networking


    【解决方案1】:

    commentaries in this SO post,可能系统认为空环境变量与未设置变量不一样,所以请使用unset http_proxy命令(其他环境变量也一样)。如果没有帮助,请提供具有更高分辨率图像的环境配置(现在文本可读性不够)。

    【讨论】:

    • 谢谢!我不知道 unset http_proxy 命令,但它帮助我找到了我的问题。它来自 .docker/config.json (一个我不知道的文件),其中设置了代理,似乎从终端中删除 http_proxy 仅针对此实例而不是真正在容器上。这让我感到困扰,我可以从终端卷曲但仍然无法访问 API URL。
    猜你喜欢
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2019-07-27
    • 2019-10-20
    • 2021-12-31
    相关资源
    最近更新 更多