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”检查端口内部端口吗?
如果不:
在这种情况下,这意味着使用本地主机连接到主机。 我的理解是它不应该工作。