在.NET中使用WCF REST服务?

时间:2012-12-06 23:12:51

标签: wcf rest soap sharepoint-2010 wcf-binding

我在Sharepoint 2010 Web应用程序中托管了此WCF服务。 WCF已使用以下工厂创建:

Factory="Microsoft.SharePoint.Client.Services.MultipleBaseAddressWebServiceHostFactory, Microsoft.SharePoint.Client.ServerRuntime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"

正如您所看到的,这是创建REST类型的服务。因为我们需要通过jQuery在客户端使用它。

现在我们还需要从.NET项目(WinForms)访问它。我尝试在VS中添加服务参考,但它找不到任何东西。我想那是因为它不是SOAP服务吗?

那么如何在不破坏现有jQuery支持的情况下在C#.NET项目中使用它呢?

1 个答案:

答案 0 :(得分:1)

是的,Add Service Reference does not work for WCF REST services。你有几个选择:

  1. 将另一个端点添加到您的服务中,这是一个基于SOAP的端点,这样您就可以在客户端上使用“添加服务引用”。我不确切知道MultipleBaseAddressWebServiceHostFactory的作用,但您可以看看它是如何创建其端点并在另一个工厂中重新创建它 - 然后添加其他SOAP端点
  2. 另一种方法是在服务实现和.NET客户端之间共享接口定义(服务合同加上任何现有的数据协定)。拥有该接口后,您可以使用WebChannelFactory<T>创建REST服务的代理(就像您拥有SOAP服务的代理一样)。