ASP核心HttpClient.Get从容器到localhost站点失败

时间:2017-03-21 09:03:39

标签: c# docker asp.net-core httpclient

假设:

问题:

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 ...

这是预期的吗?我认为从容器内部访问localhost应该工作。

其他协议如mongodb也在使用localhost。所以它似乎特定于asp连接的http连接?

1 个答案:

答案 0 :(得分:0)

之前的一个问题:我认为您尝试访问的服务器位于同一容器中,对吧?

如果是:

您应该能够使用localhost从容器内进行连接。

问题可能是该容器内部没有暴露端口80。你能用" docker ps&#34 ;?检查端口内部端口吗?

如果不是:

在这种情况下,这意味着localhost用于连接到主机。我的理解是它不应该起作用。