2

我有一个需要 Oauth 令牌进行授权的 OData svc。元数据 URL 可在此处获得。

然而,

let MySvc = ODataService<"https://wamsstageclus001rest-hs.cloudapp-int.net/API/$metadata?api-version=1.0">

返回错误reading schema, 404

我错过了什么?如何使用 API?

4

2 回答 2

2

VS2012 附带的 FSharp.Data.TypeProviders.dll 中有一个关于如何附加$metadata到 URL 的错误。

幸运的是,类型提供程序只是设计时需要的“另一个库”,因此为了解决这个错误(以及其他一些类型提供程序问题),我们目前的计划是在带外发布一个更新的类型提供程序库。从历史上看,在 VS2010 中,F# 团队在 VS 发布后一两个月对 F# 编译器/库源和 powerpack 进行了开源发布更新,因此,如果有人假设 VS2012 也是如此,那么这可能是我们向类型提供程序发布一些更新。(目前我无法提供更多发布时间表信息。)

于 2012-07-16T19:33:21.637 回答
1

您确定这是要使用的正确 URL。通常,您提供服务的 URL,服务提供者自行查找元数据。但是,您的代码提供了元数据的 URL。

因此,类型提供程序可能会向 URL 添加附加信息以使用它,而服务不知道如何处理这些复合 URL。

编辑:显然有人觉得我不清楚。

https://wamsstageclus001rest-hs.cloudapp-int.net/API/$metadata?api-version=1.0

将成为,当 ODataAdapter 尝试获取元数据信息时

https://wamsstageclus001rest-hs.cloudapp-int.net/API/$metadata?api-version=1.0$metadata

或类似的东西。如果您浏览到该特定站点,您将看到 404 错误。

但是,如果你给 ODataAdapter

https://wamsstageclus001rest-hs.cloudapp-int.net/API/

然后添加元数据不会导致 404 错误。您应该能够留下版本信息,因为它使用的是 URL 类而不是字符串操作(或者我希望如此),看起来如下所示

    https://wamsstageclus001rest-hs.cloudapp-int.net/API/?api-version=1.0
于 2012-07-10T19:12:04.747 回答