端口将被添加到下游URL。我想访问在heroku中托管的微服务。需要避免端口。 请帮忙。
它在本地开发环境中工作。但是在Heroku中部署后无法正常工作。
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/api/{catchAll}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "catalogapi-pinaki.herokuapp.com"
}
],
"UpstreamPathTemplate": "/cat-logApi/{catchAll}"
}
],
"GlobalConfiguration": {
"BaseUrl": "http://localhost"
}
}
下游网址应为“ https://catalogapi-pinaki.herokuapp.com/api/CatalogApi/GetAllItems”。
错误: 消息:下游网址为https://catalogapi-pinaki.herokuapp.com:56084/api/CatalogApi/GetAllItems
答案 0 :(得分:0)
您尝试强制使用默认端口吗?您可以使用“ DownstreamHostAndPorts”内部的port属性指定端口,如下所示:
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/api/{catchAll}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "catalogapi-pinaki.herokuapp.com",
"Port": 443
}
],
"UpstreamPathTemplate": "/cat-logApi/{catchAll}"
}
],
"GlobalConfiguration": {
"BaseUrl": "http://localhost"
}
}
答案 1 :(得分:0)
我们也面临同样的问题。我们使用FIX 2解决了问题。
FIX 1: services.AddOcelot(Configuration.GetSection(“ OcelotSettings”)) .AddDelegatingHandler(true);
在OcelotRerouteHandler内,您可以替换URL并构造新的httprequestmessage。 请参阅:https://ocelot.readthedocs.io/en/latest/features/delegatinghandlers.html
修正2:
“ DownstreamPathTemplate”:“ / subdomain / api / {catchAll}”
“主机”:“ catalogapi-pinaki.herokuapp.com”,
如果您有任何子域,请不要将其添加到主机中,请在DownstreamPathTemplate中添加。 对于https,端口可以是443。