JSON-P 与 WCF 的示例?

Posted

技术标签:

【中文标题】JSON-P 与 WCF 的示例?【英文标题】:Example of JSON-P with WCF? 【发布时间】:2010-10-08 00:26:46 【问题描述】:

我正在尝试创建一个可与 JSON-P 一起使用的 WCF 服务(长话短说,我们必须跨域调用 Web 服务并接收回调,因此我需要它与JSON-P)。

我在 MSDN (http://msdn.microsoft.com/en-us/library/cc716898.aspx) 上找到了一个代码示例。如果我提取 ZIP 文件并导航到 Samples\WCFWFCardSpace\WCF\Extensibility\Ajax\JSONP\CS,我会得到一个项目,其中创建了某些绑定和扩展,这将使 WCF 能够发出对返回 JSON 后的 JS 函数。

不幸的是,当我尝试复制此代码并在我的项目中实现它时,它不起作用。

我收到以下错误:

找不到配置绑定扩展“system.serviceModel/bindings/jsonpBinding”。验证此绑定扩展已在 system.serviceModel/extensions/bindingExtensions 中正确注册,并且拼写正确。

好像微软的开发人员遗漏了一些重要的代码,而我不确定他们遗漏了什么或它的目的。

有没有人有使用 WCF 和 JSON-P 的经验?

如果有办法让这个示例项目正常运行,我会全力以赴。

如果有另一种方法可以从 javascript 到 WCF 进行跨域 Web 服务调用,我也很感兴趣。

【问题讨论】:

是的,这基本上是我在回答你的另一个问题时所建议的,尽管这个问题有更多的 Windows 和 WCF 主义,我不知道如何在这里回答。安装 Firebug 看看发生了什么... 【参考方案1】:

您能否在问题中包含您的 web.config 文件?

您收到的消息是由于您的 web.config 中的扩展元素不存在或无效。

验证以下内容

<system.serviceModel>
  <!-- client, behavior, and bindings -->   
  <extensions>
    <bindingElementExtensions>
      <add name="jsonpMessageEncoding"
           type="Namespace, Assembly, Version=X.X.X.X, Culture=neutral, PublicKeyToken=null"/>
    </bindingElementExtensions>
  </extensions>    
</system.serviceModel>

【讨论】:

不错的答案,刚刚解决了我的问题++

以上是关于JSON-P 与 WCF 的示例?的主要内容,如果未能解决你的问题,请参考以下文章

Azure Active Directory 和 WCF 服务库示例

WCF 双工回调示例失败

WCF 命名管道最小示例

WCF学习之旅—第三个示例(二十七)

AJAX 文件上传到 WCF 服务的工作示例

wcf 入门示例