




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用WCF创建简单的RESTFul Service*服务端程序见WCFcompany1、 用VS2013创建一个WCF的工程,如下图所示:2、 对IService1.cs文件进行修改,在里面添加服务契约和数据契约,具体代码如下所示:using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Web;using System.Text;namespace WCFcompany / 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。 /定义服务契约 ServiceContract public interface IService1 / TODO: 在此添加您的服务操作 OperationContract WebGet(UriTemplate = getcustomer/id, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json) Customer GetCustomerById(string id); OperationContract WebGet(UriTemplate = getallcustomer, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json) List GetAllCustomer(); OperationContract WebInvoke(Method = POST, UriTemplate = addcustomer, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json) bool AddCustomer(Customer cust); OperationContract /如果有多个参数要使用BodyStyle = WebMessageBodyStyle.Wrapped /WebInvoke(Method = PUT, UriTemplate = updatecustomer, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped) WebInvoke(Method = PUT, UriTemplate = updatecustomer, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json) bool UpdateCustomer(Customer cust); OperationContract WebInvoke(Method = DELETE, UriTemplate = deletecustomer/id, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json) bool DeleteCustomer(string id); / 使用下面示例中说明的数据约定将复合类型添加到服务操作。 /定义数据契约 DataContract public class Customer DataMember public string Cust_id get; set; DataMember public string Cust_name get; set; DataMember public string Addr get; set; DataMember public string Tel_no get; set; DataMember public string Zip get; set; 注意:(1) WCF REST中通过WebGet、WebInvoke特性很好的利用了HTTP的GET/POST/PUT/DELETE方式,绑定到服务的不同方法上。比如GET方法不用客户端提供太多数据,正适合查询只提供主键或者查询字段的场景。POST则适合数据的插入,PUT则应用在数据更新,DELETE则直接用在数据删除上。(2) 当请求为 Get时 一般用来查询数据,使用WebGet; 而增加、修改、 删除时,则使用WebInvoke ,并用Method 来决定使用POST、PUT或DELETE ,这几个单词一定要大写,否则会出现“HTTP错误405405不允许此方法 对于请求所标识的资源,不允许使用请求行中所指定的方法”。(3) 通过UriTemplate定义 REST 的服务的调用方式,UriTemplet描述了URL匹配的格式,当格式匹配时,id位置的字符串会被对应传入为方法参数。当请求服务时,通过RequestFormat与ResponseFormat来指定请求和返回的数据格式,可选项为JSON和XML。3、 在Service1.svc.cs文件中实现IService1接口,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Activation;using System.ServiceModel.Web;using System.Text;using System.Data;using System.Data.SqlClient;using SqlServerDAL;namespace WCFcompany /以下两个特性是一定要加上去的,否则报错 AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed) ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall) public class Service1 : IService1 private DataTable SqlConnHelpGetDataMethod(string sql) CnnHelper.ConnectionSql(); CnnHelper.IsOpenHelp(); CnnHelper.UseCommand(sql, CommandType.Text); DataTable dt = CnnHelper.UseSqlDataReader(); return dt; private int SqlConnHelpSetDataMethod(string sql) CnnHelper.ConnectionSql(); CnnHelper.IsOpenHelp(); CnnHelper.UseCommand(sql, CommandType.Text); return CnnHelper.UseExecuteNonQuery(); public Customer GetCustomerById(string id) string sql = select * from customer where cust_id= + id + ; Customer cust = new Customer(); DataTable dt = SqlConnHelpGetDataMethod(sql); if (dt != null & dt.Rows.Count = 1) cust.Cust_id = dt.Rows00.ToString(); cust.Cust_name = dt.Rows01.ToString(); cust.Addr = dt.Rows02.ToString(); cust.Tel_no = dt.Rows03.ToString(); cust.Zip = dt.Rows04.ToString(); else cust = null; return cust; public List GetAllCustomer() List custList = new List(); string sql = select * from customer; DataTable dt = SqlConnHelpGetDataMethod(sql); if (dt != null & dt.Rows.Count != 0) for (int i = 0; i dt.Rows.Count; i+) Customer cust = new Customer(); cust.Cust_id = dt.Rowsi0.ToString(); cust.Cust_name = dt.Rowsi1.ToString(); cust.Addr = dt.Rowsi2.ToString(); cust.Tel_no = dt.Rowsi3.ToString(); cust.Zip = dt.Rowsi4.ToString(); custList.Add(cust); else custList = null; return custList; public bool AddCustomer(Customer cust) string sql = insert into customer values( + cust.Cust_id + , + cust.Cust_name + , + cust.Addr + , + cust.Tel_no + , + cust.Zip + ); bool flag = false; if (SqlConnHelpSetDataMethod(sql) = 1) flag = true; return flag; public bool UpdateCustomer(Customer cust) string sql = update customer set cust_name=+cust.Cust_name+,addr=+cust.Addr+,tel_no=+cust.Tel_no+,zip=+cust.Zip+ where cust_id=+cust.Cust_id+; bool flag = false; if (SqlConnHelpSetDataMethod(sql) = 1) flag = true; return flag; public bool DeleteCustomer(string id) string sql = delete customer where cust_id= +id+ ; bool flag = false; if (SqlConnHelpSetDataMethod(sql) = 1) flag = true; return flag; 4、修改Web.config文件,在文件中添加如下代码:(添加服务器节点,并以REST行为进行配置,注意服务器名必须是:WCFcompany.Service1,相应的服务契约是WCFcompany.IService1) 5、 如果要在IIS中能访问数据库,必须采用SQL Server身份验证方式连接数据库。(1) 确保你的Sql Server能够以sa身份连接数据库。右击SQL Server服务器,选“属性”,在服务器属性窗口的“安全性”选项页中选择“SQL Server和Windows身份验证”,重启服务。(2) 设置sa的登录密码。在SQL Server服务器的“安全性”“登录名”“sa”,右击,选择“属性”,设置sa的密码,如“123”。(3) 启用sa,在SQL Server服务器的“安全性”“登录名”“sa”,右击,选择“属性”,在“状态”选择页中,登录选择“启用”,是否允许连接到数据库引擎,选择“授予”,点击确定就可以了。(4)在Web.config文件中添加如下代码(以sa身份连接数据库): 6、 启动IIS,并开启IIS支持WCF功能(1)启动IIS,勾选上IIS信息服务万维网服务应用程序开发功能中“.net扩展”和“ASP.NET”相关的选项,如下图所示:(2)另外,IIS如果要支持WCF的话,还需勾选上:.NET Framework 4.5高级服务WCF服务中的“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建三明市教育局华东师范大学附属三明中学招聘紧缺急需专业工作人员18人(省外高校专场)考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年芜湖广济医院招聘20人考前自测高频考点模拟试题有完整答案详解
- 2025年度劳动合同,企业聘用合同模板
- 2025江苏省宿迁经济技术开发区教育系统招聘教师42人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025黑龙江齐齐哈尔市富裕县信访局招聘公益性岗位人员2人考前自测高频考点模拟试题及答案详解(易错题)
- 2025年春季内蒙古包头铁道职业技术学院人才引进模拟试卷完整答案详解
- 2025北京市朝阳区教育委员会所属事业单位招聘毕业生394人模拟试卷及答案详解参考
- 2025吉林通化市公益性岗位拟聘用人员考前自测高频考点模拟试题有答案详解
- 2025年宿州市人才集团有限公司招募就业见习人员7人考前自测高频考点模拟试题及完整答案详解
- 2025广东汕尾市陆河县高校毕业生就业见习招募15人(第三批)考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2021利达JB-QG-LD988EL JB-QT-LD988EL 火灾报警控制器 消防联动控制器调试手册
- 工业厂区规划设计说明书
- 结直肠癌的转化治疗
- 高中政治-专题五-第四课-亚太经济合作组织:区域经济合作的新形式课件-新人教版选修3
- 顺丰快递分析
- 提高住院病历完成及时性持续改进(PDCA)
- 平舌音和翘舌音学习资料课件
- 免疫学MHC主要组织相容性复合体及其编码分子
- 公司出差行程计划表excel模板
- 新产品APQP开发计划表
- ICU患者的早期活动
评论
0/150
提交评论