首页 > 解决方案 > 如何避免使用 Visual Studio 和 docker 容器在 API 上出现连接被拒绝错误?

问题描述

由于我使用 VPN 在家工作,因此无法为我的解决方案请求身份验证 API。

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

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

连接被拒绝错误

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

他的配置

我的:

在此处输入图像描述

如您所见,我配置了 http_proxy,但我不知道它来自哪里。它使 docker 容器无法访问 Internet,因此我使用 a 将其删除,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-studiodockerhttpnetworking

解决方案


请参阅此 SO 帖子中的评论,可能系统认为空环境变量与未设置变量不同,因此,请使用unset http_proxy命令(对于其他环境变量也是如此)。如果没有帮助,请提供具有更高分辨率图像的环境配置(现在文本可读性不够)。


推荐阅读