无法将服务引用添加到 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 项目