【问题标题】:Excel data pull from External Source odata feed does not work从外部源数据源提取 Excel 数据不起作用
【发布时间】:2019-12-04 05:47:59
【问题描述】:

我们有一个 ODATA 提要 Web API,它是我们 Excel 报告的数据源。当它托管在本地和物理服务器上时,我们能够成功提取此 Odata 提要。当相同的 odata 提要 Web API 托管在云环境中时,我们将面临连接超时问题。

无法连接
尝试连接时遇到错误
详细信息:“OData:请求失败:无法连接到远程 服务器”

当我们在 excel 文件中使用 office 数据连接 (odc) 时,可以访问云中的相同 odata 提要。

<html xmlns:o="urn:schemas-microsoft-com:office:office"
                            xmlns="http://www.w3.org/TR/REC-html40">

                            <head>
                            <meta http-equiv=Content-Type content="text/x-ms-odc; charset=utf-8">
                            <meta name=ProgId content=ODC.TableCollection>
                            <meta name=SourceType content=DATAFEED>
                            <title>OurApplication</title>
                            <xml id=docprops><o:DocumentProperties
                              xmlns:o="urn:schemas-microsoft-com:office:office"
                              xmlns="http://www.w3.org/TR/REC-html40">
                              <o:Name>OurApplication</o:Name>
                             </o:DocumentProperties>
                            </xml><xml id=msodc><odc:OfficeDataConnection
                              xmlns:odc="urn:schemas-microsoft-com:office:odc"
                              xmlns="http://www.w3.org/TR/REC-html40">
                              <odc:Connection odc:Type="DATAFEED">
                               <odc:ConnectionString>
Data Source=&quot;https://OurApplication.com/odata/OurTable&quot;
</odc:ConnectionString>
                               <odc:CommandType>TableCollection</odc:CommandType>
                               <odc:CommandText>&quot;OurTable&quot;</odc:CommandText>
                              </odc:Connection>
                             </odc:OfficeDataConnection>
                            </xml>
                            <style>
                            </style> 
                            </head> 
                            </html>  

但是,当我们尝试使用 Get External Data 进行带入时,它无法访问,如下所示:

我们在提琴手中遇到了错误。

[Fiddler] 与“OurApplication.com”的连接失败。
错误: 超时 (0x274c)。
System.Net.Sockets.SocketException A 连接尝试失败,因为连接方没有正确 一段时间后响应,或建立连接失败 因为连接的主机没有响应 OurApplicationIPAddress:OurApplicationPortNumber

当我尝试使用 M 语言作为 OData 源时,我收到如下错误:

= OData.Feed ("OurApplication/odata/OurTable"
    ,null, [Timeout = #duration(0,2,0,0)])

DataSource.Error:OData:请求失败:远程服务器返回一个 错误:(502)错误的网关。 (提琴手 - 连接失败)详细信息: DataSourceKind=OData 数据源路径=http://Ourapplication:portnumber/odata/$元数据 网址=http://courapplication/odata/$元数据

请帮助我们解决如何在 Excel 中连接到 Powerquery 中的 ODATA 提要。

【问题讨论】:

    标签: excel asp.net-web-api odata fiddler powerquery


    【解决方案1】:

    尝试指定超时参数(例如2小时):

    = OData.Feed("http://link", null, [Timeout = #duration(0,2,0,0)])
    

    【讨论】:

    • WebAPI 在几秒钟内为同一云托管 Web API 的 ODC 文件返回数据。仅对于 OData 提要,似乎存在问题。我们得到 502: Bad gateway 错误。我已经更新了我的问题
    【解决方案2】:

    在我们的案例中,基本身份验证不适用于 PaaS(我们使用基于云基础的 PaaS 托管)托管的 webAPI。我们创建了一个带有匿名身份验证的端点,并在我们的 excel 连接中使用该端点来使用OData 获取数据。

    注意:在我们的案例中,由于数据不敏感,而且作为内部应用程序,我们继续进行匿名身份验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 2020-01-06
      • 2019-08-04
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多