【问题标题】:Consuming a WCF REST Service in .NET?在 .NET 中使用 WCF REST 服务?
【发布时间】:2012-12-06 23:12:50
【问题描述】:

我在 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 项目中使用它呢?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我不确定如何查看工厂创建的内容。我去了部署 .svc 的 Sharepoint 文件夹 (ISAPI),但那里没有 web.config。所以我真的不知道到底在哪里定义端点。
    猜你喜欢
    • 2011-07-21
    • 2020-11-16
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2021-11-07
    相关资源
    最近更新 更多