如何从本地主机上的ASP.NET核心Web应用程序与容器中的Web API通信



有一个web应用程序正在本地机器上的容器中运行。此web应用程序可通过url访问:";http://myapp:3030",在我的本地机器上,我可以浏览应用程序。myapp API也可以从邮递员使用";http://myapp:3030/api"url。

使用aspnet.core httpclient,我想与"http://myapp:3030/api"(容器内(来自运行在我的本地机器localhost:5001(容器外(:上的asp.net核心应用程序

using var content = new StringContent(data, Encoding.UTF8,"application/json");
HttpResponseMessage httpResponse;

try
{
httpResponse = await httpClient.PostAsync(new Uri("http://myapp:3030/api/dosomething"), content);
httpResponse.EnsureSuccessStatusCode();
}
catch (HttpRequestException e)
{
Debug.WriteLine(e.Message);
throw;
}

上面的请求失败;目前还不知道这样的宿主"例外,而同样的请求尽管邮递员工作正常。如何从localhost上的aspnet.core web应用程序与容器中的web api通信?

假设您使用--name myapp -p 5001:3030启动容器,那么Postman(以及您的浏览器和主机上的其他代码,而不是在容器中(将到达localhost:5001路由,并且同一Docker网络中的其他服务将需要使用myapp:3030

如果没有共享网络,就会出现这样的DNS错误。

为了保持一致性,在调试本地容器时尽量不要重新映射端口。

相关内容

  • 没有找到相关文章

最新更新