ASP核心HttpClient.Get从容器到本地主机的网站是失败的

鉴于:

  • Windows 10 PC与Docker(Linux容器格式)
  • IIS中的本地网站可以在裸机(无容器) http:// localhost / foo上访问
  • 想要访问HTTP GET的http核心DockerContainer http:// localhost / foo

问题:

所有对http:// localhost的请求都失败

var client = new HttpClient(); var result = await client.GetAsync("http://localhost/foo"); 

然后我得到

System.Net.Http.HttpRequestException:发送请求时发生错误。 —> System.Net.Http.CurlException:无法连接到服务器System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode错误)在System.Net.Http.CurlHandler.MultiAge …

这是预期的吗? 我以为从容器内访问本地主机应该工作。

其他协议,如mongodb正在与本地主机。 所以它似乎是具体的http连接forms的ASP核心?

之前的一个问题:我想你尝试访问的服务器在同一个容器中,对不对?

如是:

您应该能够使用本地主机从容器内连接。

问题可能是这个容器在内部不暴露端口80。 你能用“docker ps”检查端口内部端口吗?

如果不:

在这种情况下,这意味着使用本地主机连接到主机。 我的理解是它不应该工作。