Excel 从外部源 odata 提要中提取的数据不起作用
Excel data pull from External Source odata feed does not work
我们有一个 ODATA 提要网站 API,它是我们 Excel 报告的数据源。这个 Odata 提要,当它托管在本地和物理服务器上时,我们能够成功提取。当相同的 odata feed web API 托管在云环境中时,我们将面临连接超时问题。
Unable to Connect
We encountered an error when trying to connect
Details: "OData: Request failed: Unable to connect to the remote
server"
当我们在 excel 文件中使用办公室数据连接 (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="https://OurApplication.com/odata/OurTable"
</odc:ConnectionString>
<odc:CommandType>TableCollection</odc:CommandType>
<odc:CommandText>"OurTable"</odc:CommandText>
</odc:Connection>
</odc:OfficeDataConnection>
</xml>
<style>
</style>
</head>
</html>
但是,当我们尝试使用下面给出的获取外部数据时,它是不可访问的:
我们在 fiddler 中遇到错误。
[Fiddler] The connection to 'OurApplication.com' failed.
Error:
TimedOut (0x274c).
System.Net.Sockets.SocketException A
connection attempt failed because the connected party did not properly
respond after a period of time, or established connection failed
because connected host has failed to respond
OurApplicationIPAddress:OurApplicationPortNumber
当我尝试将 M 语言用于 OData 源时,出现如下错误:
= OData.Feed ("OurApplication/odata/OurTable"
,null, [Timeout = #duration(0,2,0,0)])
DataSource.Error: OData: Request failed: The remote server returned an
error: (502) Bad Gateway. (Fiddler - Connection Failed) Details:
DataSourceKind=OData
DataSourcePath=http://Ourapplication:portnumber/odata/$metadata
Url=http://courapplication/odata/$metadata
请帮助我们解决如何在 excel 中连接到 Powerquery 中的 ODATA 提要。
尝试指定超时参数(例如 2 小时):
= OData.Feed("http://link", null, [Timeout = #duration(0,2,0,0)])
在我们的案例中,基本身份验证不适用于 PaaS(我们使用的是基于云平台的 PaaS 托管)托管的 webAPI。我们使用匿名身份验证创建了另一个端点,并在 excel 连接中使用该端点以使用 OData
获取数据。
注意:在我们的案例中,由于数据不敏感,而且是内部应用程序,我们继续进行匿名身份验证。
我们有一个 ODATA 提要网站 API,它是我们 Excel 报告的数据源。这个 Odata 提要,当它托管在本地和物理服务器上时,我们能够成功提取。当相同的 odata feed web API 托管在云环境中时,我们将面临连接超时问题。
Unable to Connect
We encountered an error when trying to connect
Details: "OData: Request failed: Unable to connect to the remote server"
当我们在 excel 文件中使用办公室数据连接 (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="https://OurApplication.com/odata/OurTable"
</odc:ConnectionString>
<odc:CommandType>TableCollection</odc:CommandType>
<odc:CommandText>"OurTable"</odc:CommandText>
</odc:Connection>
</odc:OfficeDataConnection>
</xml>
<style>
</style>
</head>
</html>
但是,当我们尝试使用下面给出的获取外部数据时,它是不可访问的:
我们在 fiddler 中遇到错误。
[Fiddler] The connection to 'OurApplication.com' failed.
Error: TimedOut (0x274c).
System.Net.Sockets.SocketException A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond OurApplicationIPAddress:OurApplicationPortNumber
当我尝试将 M 语言用于 OData 源时,出现如下错误:
= OData.Feed ("OurApplication/odata/OurTable"
,null, [Timeout = #duration(0,2,0,0)])
DataSource.Error: OData: Request failed: The remote server returned an error: (502) Bad Gateway. (Fiddler - Connection Failed) Details: DataSourceKind=OData DataSourcePath=http://Ourapplication:portnumber/odata/$metadata Url=http://courapplication/odata/$metadata
请帮助我们解决如何在 excel 中连接到 Powerquery 中的 ODATA 提要。
尝试指定超时参数(例如 2 小时):
= OData.Feed("http://link", null, [Timeout = #duration(0,2,0,0)])
在我们的案例中,基本身份验证不适用于 PaaS(我们使用的是基于云平台的 PaaS 托管)托管的 webAPI。我们使用匿名身份验证创建了另一个端点,并在 excel 连接中使用该端点以使用 OData
获取数据。
注意:在我们的案例中,由于数据不敏感,而且是内部应用程序,我们继续进行匿名身份验证。