如何避免使用 Visual Studio 和 docker 容器在 API 上出现连接被拒绝错误?
Posted
技术标签:
【中文标题】如何避免使用 Visual Studio 和 docker 容器在 API 上出现连接被拒绝错误?【英文标题】:How to avoid a connection refused error on an API with Visual Studio and a docker container? 【发布时间】:2020-07-10 14:37:07 【问题描述】:自从收容以来,我使用 *** 在家工作,我无法为我的解决方案请求身份验证 API。
我正在开发一个带有两个 docker 容器的 .Net Core 应用程序,一个是应用程序,第二个是 DB2 数据库,我们有一个客户端给我们的身份验证 API,我们安装在我们的一台本地机器上。因此,一旦我通过 *** 进行连接,我猜现在一切都在同一个网络中(我不是网络专家)。
现在,开发分支正在集成服务器和我同事的 PC 上工作,他也在家里通过 *** 工作,所以我们在相同的条件下使用相同的代码。 但是在尝试进行身份验证时出现此错误:
唯一的区别应该来自我的环境,我确实有一些不同的东西: - 他的环境
还有我的:
如您所见,我已经配置了 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。
【问题讨论】:
【参考方案1】:见commentaries in this SO post,可能系统认为空环境变量与未设置变量不一样,所以请使用unset http_proxy
命令(其他环境变量也一样)。如果没有帮助,请提供具有更高分辨率图像的环境配置(现在文本可读性不够)。
【讨论】:
谢谢!我不知道 unset http_proxy 命令,但它帮助我找到了我的问题。它来自 .docker/config.json (一个我不知道的文件),其中设置了代理,似乎从终端中删除 http_proxy 仅针对此实例而不是真正在容器上。这让我感到困扰,我可以从终端卷曲但仍然无法访问 API URL。以上是关于如何避免使用 Visual Studio 和 docker 容器在 API 上出现连接被拒绝错误?的主要内容,如果未能解决你的问题,请参考以下文章
带有 PyLint 和 autoPep8 的 Visual Studio 代码:如何避免 PyLint 抱怨我的行长?
如何在仍然使用 sysnative 虚拟文件夹的同时使用 Visual Studio 的 Exec 代码 -1 避免错误 MSB3073
如何避免 Visual Studio 在目标框架名称目录中输出程序集?
如何在 Visual Studio Mac for Unity 解决方案中避免 CS1591 警告?