在LB

时间:2016-10-17 09:45:27

标签: asp.net https odata owin load-balancing

我在使用HTTPS访问ASP.NET OData端点时遇到问题。 ASP.NET站点通过OWIN托管。我正在使用NuGet包Microsoft.AspNet.WebApi.OData作为OData(v3)部分。 SSL终止发生在服务器外部的单独负载均衡器中。

使用REST客户端(例如Postman)访问OData端点可以正常工作:https://api.my-domain.com/odata/v3

但是当我使用OData客户端(例如Excel或PowerBI)时,访问失败并显示通用消息,主机强行关闭连接。

此外,我发现当我通过Postman访问端点https://api.my-domain.com/odata/v3时,我会收到一些XML元数据,这些元数据指的是正常的 http 端点(请参阅下面的代码段),它被阻止LB.

<?xml version="1.0" encoding="utf-8"?>
<service xml:base="http://api.my-domain.com/odata/v3" xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
<workspace>
   ...

此外,我使用Wireshark嗅探来自Excel / PowerBI的流量,发现客户端使用 https 。我不熟悉OData协议的详细信息,但我猜客户端正在通过元数据确定地址。

对于验证我在LB中取消阻止端口80,无论我是否使用 http https 作为初始请求,Excel / PowerBI都可以成功连接。

但是如何解决这个问题(我不想允许 http 上的流量)。是否可以指示ASP.NET OData中间件使用 https URI生成元数据?

1 个答案:

答案 0 :(得分:0)

似乎在这里提出并解决了类似的问题:Override host of webapi odata links。这会解决您的问题吗?