公开 WCF 4.0 Rest 模板服务的元数据

Posted

技术标签:

【中文标题】公开 WCF 4.0 Rest 模板服务的元数据【英文标题】:Exposing meta data for a WCF 4.0 Rest Template Service 【发布时间】:2011-06-29 10:31:50 【问题描述】:

可能缺少一些非常基本的东西。我创建了一个 WCF 4.0 休息服务。当我从浏览器中点击 url 并且我得到了我想要的东西时,它没有问题。

但现在我想从客户端 mvc 应用程序中使用该服务(它也将被其他非 .net 平台使用,这就是为什么它首先是一个休息服务)。

问题是我如何获得对它的服务引用,以便我可以开始在我的 c# 代码中使用它?使用新的最小 WCF .net 4 配置方法并且没有服务合同接口,我不知道如何指定 mex 端点。最终,我不希望在生产中使用 mex 端点,只是在开发过程中。我希望能够指定我的所有服务(一个应用程序中大约 10 个)都具有带有一小块配置的端点,而 vs2010 .config 转换只是在我发布时撕掉。

【问题讨论】:

【参考方案1】:

Stop。 REST 服务不使用元数据。元数据(Mex 端点)仅用于 SOAP 服务,因为 WSDL 1.1(WCF 唯一的 version supported)只能描述 SOAP 服务。 WADL 或 WSDL 2.0 能够描述 REST 服务,但目前 WCF 不支持它们。

REST 服务通过直接使用WebRequest 或在共享合约之上构建ChannelFactory 来使用。两种方法都描述了here。其他方法是使用来自REST Starter kit(前API)的HttpClient。 Starter kit 的问题在于它从未达到 RTM(它已被 WCF 4 取代)。而不是元数据端点 WCF 4 REST 服务提供了help page,其中描述了所有操作。使用 WCF 4 REST 模板时,帮助页面应该已经打开 - 只需将 /help 后缀添加到您的服务地址。 Here is another article 关于构建 REST 客户端。

【讨论】:

谢谢,自从我发布以来,我已经观看并阅读了许多文章。我有点困惑的部分是每个人都通过点击 url 来使用 WCF 数据服务(这不是 REST 吗?),然后从添加服务引用生成客户端。 但据我所知,这是 WCF 数据服务的一项功能。

以上是关于公开 WCF 4.0 Rest 模板服务的元数据的主要内容,如果未能解决你的问题,请参考以下文章

WCF 4.0 - 使用 REST 服务模板返回 JSON WebFaultException

wcf 数据服务是不是可以返回 json 格式的元数据?

添加服务失败。服务元数据可能无法访问。确保您的服务正在运行并公开元数据。 WCF 错误

WCF 测试客户端:添加服务失败。服务元数据可能无法访问。确保您的服务正在运行并公开元数据

如何在 WCF 4.0 REST 服务上启用基本身份验证?

Autofac + WCF REST 4.0