如何在.NET4中用jQuery调用WCF?

日期: 2011-02-14 作者:dudu 来源:TechTarget中国 英文

  在我们之前的开发中,对于ajax程序,都是通过jQuery调用标记为[System.Web.Script.Services.ScriptService]的WebService,然后在WebService中调用后台的WCF。这成为WebService存在的唯一理由:作为ajax调用的中转站。如果要抛弃WebService,只需用WCF来作为中转站。

  在.NET 3.5时代,jQuery就可以调用WCF,之前我也写过博客(比如:jQuery调用WCF需要注意的一些问题),但配置比较麻烦。

  走进.NET 4的新时代,WCF的配置的确简化了不少(比如:在.NET 4中用IIS部署WCF就这么简单),WCF的ajax调用同样也简化了。所以我们决定抛弃WebService,全面进军WCF。

wcf

  现在博客园的程序架构已经基于WCF,所以我们对WCF格外关注,分享的文章有些可能比较简单,但都是源自我们实际开发中遇到并解决的问题。

  下面分享一下在.NET4中如何通过jQuery调用WCF:

  说明:这里的WCF仅仅是给ajax调用的中转站,通过它再去调用本地服务层接口或者后台的其他WCF服务。

  1. 在App_Code中添加一个类文件(就是普通的class),比如叫HelloService.cs。

  2. 在HelloService.cs中添加一个方法,再加上一些WCF的设置,如下图:

一些WCF的设置

  [ServcieContract]与[OperationContract]是标准设置,这里将‘服务接口”与”服务实现”写在了一个类中,不是推荐做法。我们这里这样做,是因为需要的是一个ajax调用中转站,越简单越好。

  这里需要注意的是AspNetCompatibilityRequirements,如果不进行这个设置,WCF就不走ASP.NET管线,ASP.NET的上下文信息就拿不到,比如:不加这个设置,HttpContext.Current就为null,最常用的场景就是根据HttpContext获取用户登录信息,对用户权限进行验证。对应于这个设置,在web.config的<system.serviceModel>中需要加上<serviceHostingEnvironment aspNetCompatibilityEnabled=”true”>,如下图:

对用户权限进行验证

  *注意的地方:web.config中加了上面的设置后,所有的WCF服务实现都要设置AspNetCompatibilityRequirements属性。

  3. 继续在web.config增加设置,在system.serviceModel/serviceHostingEnvironment中增加serviceActivations,如下图:

继续在web.config增加设置

  relativeAddress就是WCF服务的地址名,service就是之前创建的HelloService类名,factory是关键,支持ajax调用,靠的就是System.ServiceModel.Activation.WebScriptServiceHostFactory。

  好了,三步搞定WCF端的配置。这时在VS2010启动项目,就可以在浏览器中访问这个WCF了,比如:http://localhost:3960/jQueryWcfDemo/HelloService.svc。如果出现下面的画面,就表示WCF端工作正常。

三步搞定WCF端的配置。

  4. jQuery调用WCF开始了,代码如下:

jQuery调用WCF开始

  需要注意的地方是上图中加背景的地方,contentType与data,与WebService的不同之处已在注释中说明。

  点击提交按钮,”Hello, World”……全面进入WCF时代,见下图:

全面进入WCF时代

  示例代码下载:http://files.cnblogs.com/dudu/jQueryWcfDemo.rar

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 十款最新的JavaScript开发工具

    JavaScript自推出后就大受开发者的青睐,基于JavaScript的开发工具不计其数,开发者们可以灵活选择,轻松构建应用,本文分享了十款最新的JavaScript开发工具。

  • Twitter.com在用哪些JavaScript框架?

    我一直在研究twitter.com使用的一些UI框架。下面是这些框架的清单(大部分是Javascript框架)。如果你发现有些框架Twitter已经没在使用了,请随时告诉我!

  • 25个可遇不可求的jQuery插件

    随着jQuery插件在网站建设过程中的使用率不断的增加,所以有必要跟进时代步伐开发出一些新的插件/代码片段,以此来巩固并提高前端用户体验,将用户体验提升到一个新的高度。

  • 八个超实用的jQuery技巧攻略

    jQuery是JavaScript最好的库之一,主要用于制作动画、事件处理,支持Ajax及HTML脚本客户端。文中分享了8个超实用的jQuery代码技巧攻略,希望你会喜欢。