一起谈.NET技术,舍WebService 用.NET4中jQuery调用WCF

简介:   在我们之前的开发中,对于ajax程序,都是通过jQuery调用标记为[System.Web.Script.Services.ScriptService]的WebService,然后在WebService中调用后台的WCF。

  在我们之前的开发中,对于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。

  舍WebService 用.NET4中jQuery调用WCF

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

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

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

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

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

  舍WebService 用.NET4中jQuery调用WCF

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

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

  舍WebService 用.NET4中jQuery调用WCF

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

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

  舍WebService 用.NET4中jQuery调用WCF

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

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

  舍WebService 用.NET4中jQuery调用WCF

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

  舍WebService 用.NET4中jQuery调用WCF

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

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

  舍WebService 用.NET4中jQuery调用WCF

目录
相关文章
|
5月前
|
开发框架 JSON JavaScript
ASP.NET Core3.1实战教程---基于Jquery单文件上传
ASP.NET Core3.1实战教程---基于Jquery单文件上传
76 0
|
4月前
|
C# 数据库 网络架构
技术经验分享:c#程序添加其他网站的webservice引用。
技术经验分享:c#程序添加其他网站的webservice引用。
35 0
|
5月前
|
存储 监控 BI
HIS系统是什么?一套前后端分离云HIS系统源码 接口技术RESTful API + WebSocket + WebService
医院管理信息系统(全称为Hospital Information System)即HIS系统。 常规模版包括门诊管理、住院管理、药房管理、药库管理、院长查询、电子处方、物资管理、媒体管理等,为医院管理提供更有力的保障。 HIS系统以财务信息、病人信息和物资信息为主线,通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为医院领导及各部门管理人员提供全面、准确的各种数据。 门诊医生工作站采用下拉式汉化菜单,界面友好,实用性强,设有与门诊挂号收费系统、医技科室信息系统、住院结算信息系统的软件接口。
114 1
|
12月前
|
Oracle 关系型数据库 API
C# LIS检验系统源码,接口技术:RESTful API + Http+WCF
LIS检验系统一种专门用于医院化验室的计算机系统,它致力于提高医院化验室的工作效率和检测准确率。LIS系统由多个子系统组成,包括样本管理系统、质控系统、检验结果管理系统、报告管理系统等。体系结构:Client/Server架构 SaaS模式 客户端:WPF+Windows Forms 服务端:C# +.Net 数据库:Oracle 接口技术:RESTful API + Http+WCF
|
开发框架 前端开发 JavaScript
ASP.Net Core中使用jquery-ajax-unobtrusive替换Ajax.BeginForm
ASP.Net Core中使用jquery-ajax-unobtrusive替换Ajax.BeginForm
189 0
|
开发框架 JavaScript 前端开发
【浅谈ASP.NET】——WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
【浅谈ASP.NET】——WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
209 0
【浅谈ASP.NET】——WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
|
前端开发 JavaScript API
NET MVC第七章、jQuery插件验证
NET MVC第七章、jQuery插件验证
178 0
NET MVC第七章、jQuery插件验证
|
开发框架 移动开发 前端开发
ASP.NET MVC中使用jQuery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
ASP.NET MVC中使用jQuery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
282 0
|
JSON 前端开发 .NET
如何构建ASP.NET MVC4&JQuery&AJax&JSon示例
背景:   博客中将构建一个小示例,用于演示在ASP.NET MVC4项目中,如何使用JQuery Ajax。 步骤: 1,添加控制器(HomeController)和动作方法(Index),并为Index动作方法添加视图(Index.cshtml),视图中HTML如下: 输入你的姓名: 输入你的年龄: 提交 清空   视图中包含两个文本框,分别用来输入名字和年龄,包含连个按钮,分别用来提交信息和清空文本框的内容,同时包含一个段落,用来显示Ajax返回的数据信息。
1085 0
|
Web App开发 XML C#
C#远程调用技术WebService修炼手册
一、课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上。所以在本次分享课开课之前,我们要“约法三章”不谈论以下几个比较“严肃”和“敏感”的话题:WebServi...
1825 0