PowerBI Desktop 返回 404 获取 OData API 但在 Fiddler 中工作正常

PowerBI Desktop returning 404 getting OData API but works fine in Fiddler

我有一个客户 OData 源,我想将其提取到 PowerBI 中。直接调用 API 时,PowerBI 使用不记名令牌

可以正常工作

https://api.mywebsite.com/odata/customers

然而,我通过反向代理路由我所有的流量(在 web.config 中进行基本的 url 重写)所以所有的请求实际上都是通过这个 url:

https://mywebsite.com/api/v1/odata/customers

这个反向代理 url 在 Fiddler 中工作正常。它重新路由到第一个 url 并且当我的 UI 在浏览器中调用它时它也能正确地执行此操作。但是 PowerBI returns 每次都是 404。

我启用了 PowerBI 跟踪日志,发现出现了 2 个错误

"https://mywebsite.com/api/v1/odata/customers"
ExceptionType: System.Net.WebExceptionPublicKeyToken=b77a5c561934e089\r\n
Message: Unable to connect to the remote server
StackTrace:\n   at System.Net.HttpWebRequest.GetResponse()\r\n   
at Microsoft.Mashup.Engine1.Library.Common.WrappingHttpWebRequest


Microsoft.Mashup.Engine1.Library.OData.ODataFallbackVersionHandler.
HandleVersionFallbackMessage:
 No connection could be made because the target machine actively refused it
 127.0.0.1:8888
System.Net.Sockets.Socket.DoConnect

我检查了我的反向代理和 Web 应用程序日志,没有 404,这表明上面的错误是真正的 404,但不确定 127.0.0.1 错误是什么意思?

我的反向代理 url 没有防火墙限制,因为 Fiddler 可以很好地从我的本地机器进行调用。只是 PowerBI 不喜欢它,但是 PowerBI 可以很好地直接调用 API。我已经尝试清除 PowerBI 中的所有数据源权限以从头开始,但我在 headers 中使用了不记名令牌身份验证,所以它们不应该适用。

原来我使用的是 OData v3,服务器有 OData v4,现在它向后兼容,但您必须根据您从 PowerBI 发出的请求将 MaxDataServiceVersion="3.0" 添加到 headers。 PowerBI 本身不允许我通过 fiddler 捕获数据和检查,但是 Excel 在相同的 API.

上做了