【发布时间】:2018-03-04 08:17:59
【问题描述】:
我用C#创建了几个在windows的docker上运行的微服务,我需要从另一个微服务调用微服务,所以我用这种方式调用:
[HttpGet("GetOrder/{Object_ID}")]
public Order GetOrder (int id)
{
string Baseurl = "http://189.29.0.100/";
…..
using (var client = new HttpClient())
{
//Passing service base url
client.BaseAddress = new Uri(Baseurl);
client.DefaultRequestHeaders.Clear();
//Define request data format
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//Sending request to find web api REST service resource GetAllEmployees using HttpClient
borrowerData = await client.GetStringAsync("api/order/" + Id.ToString());
}
…
}
我在 Compposed 文件中使用的修复 IP 如下:
orderservice:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "80"
networks:
default:
ipv4_address: 189.29.0.100
问题是当我们在VM中部署这个项目时,如何使它与这些Ips一起工作?
【问题讨论】:
-
您应该改用名称。喜欢
serviceA。然后,您应该在撰写中使用extra_hosts将应用程序IP 的主机条目设置为189.29.0.100。部署到 VM 时,您可以使用/etc/hosts中的条目作为主机 -
您可以创建一个具有有效名称的网络并将其用作主机名。这能解决您的问题吗?
标签: c# docker microservices docker-for-windows