无法将服务引用添加到 OData 端点

Posted

技术标签:

【中文标题】无法将服务引用添加到 OData 端点【英文标题】:Unable to add service reference to OData endpoint 【发布时间】:2019-09-20 12:50:31 【问题描述】:

我刚刚完成了创建 OData V3 端点的演练

https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/creating-an-odata-endpoint

我让 api 正常工作并使用 PostMan 对其进行了测试。 现在我想从 .NET 客户端(控制台应用程序)使用端点,所以我跳到他们的另一个演练

https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/calling-an-odata-service-from-a-net-client

但是,当我尝试添加服务参考时,它在我输入的 URL (http://localhost/WebAPI_OData/odata/) 上找不到任何服务,

无法添加指定的 OData API,因为现在 OData API 仅支持 OData 客户端代码生成工具。

当我去site 获取代码生成工具时,它说

OData 客户端代码生成器支持生成客户端代理文件 OData V4 Service ...它支持以下Visual Studio:Visual 工作室 2010、2012、2013、2015

下面写着

OData Connected Service 让应用开发者可以连接他们的应用 到 OData 服务(V3 和 V4)并生成客户端代理文件 为服务。它支持以下Visual Studio:

Visual Studio 2015

但我使用的是 Visual Studio 2019。所以我对此感到非常困惑。我们应该为 OData V3 和最新的 Visual Studio 使用哪个工具?如初始教程所示,添加服务引用的等效过程是什么。

【问题讨论】:

【参考方案1】:

在 VS2017 中,可以使用 OData v4 Client Code Generator,后来 Microsoft 将 OData Connected Service 添加到市场,请参阅 this question 了解更多信息。

目前 Visual Studio 2019 似乎不支持 OData 连接服务,已跟踪 Github 问题here。 cmets 中有人建议改用非官方的 'uncase' OData 服务,请参阅:here。

【讨论】:

我可以证明 Unchase Odata 连接服务的优点。无从属关系。 由于使用 VS2019 对 API 进行身份验证,MS 代码生成器出现问题。使用 UNChase 扩展效果很好。

以上是关于无法将服务引用添加到 OData 端点的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法让 Swashbuckle 将 OData 参数添加到 Web API 2 IQueryable<T> 端点?

无法将 Azure VM 上托管的 WCF 服务引用添加到 VS2015 项目

将标志添加到枚举后:Wcf 错误:错误 5 自定义工具错误:无法为服务引用“MyService”生成代码

带有 WCF REST 的 OData

使用ABAP CDS视图创建服务

OData端点:是否可以编辑文档服务