zoukankan      html  css  js  c++  java
  • WCF REST<1>: 搭建简单的WCF REST 服务

    熟悉.NET Framework的人都应该知道在WCF 3.5时就已经支持了WCF REST 功能,经过.NET 4.0的改进到现在.NET4.5时大有被WEB API替代的趋势,但REST并非就已经走向了死亡,这里简要的记录下如何通过VS2012快速搭建一个WCF REST服务。

    1、打开VS2012,新建一个WCF服务应用程序。

    2、删除默认生成的接口跟实现文件(如图)

    3、新增自定义的接口文件: ICustomerService.cs

    这里需要注意如果是POST操作,则必须指定Method为大写的字符串"POST",并设置BodyStyle,这里设置为WebMessageBodyStyle.WrappedRequest
    4、添加实现类: CustomerService.cs
    6、新增一个.svc文件,如下图,把service指向编写好的服务。
     
    7、修改配置文件:
     
     
    8、生成解决方案,在浏览器中输入地址进行测试
     
    如图,已已成功生成REST服务。
     
     总结:
    1、为何说REST还没有完全不会被WebAPI取代,在这个项目中可以看到,其实这个REST服务是不止是REST服务,它还暴露了另外的一个EndPoint,即使用了BasicHttpBinding的SOAP服务。这是非常有意义的。
    2、在开发REST服务时需要注意的是,REST的EndPoint使用的绑定必须是WebHttpBinding。同时需要注意的是如果发布的REST服务需要使用POST,PUT等方式必须设置Method属性为对于的大写"POST","PUT"。
    3、在上面的测试中可以发现,在步骤8中,我们给出的REST的地址是http://localhost:13412/CustomerService.svc/XMLService/Customers/aa,其中的地址中“CustomerService.svc”在地址栏中总感觉非常别扭,有没有一个好方法设定自定义的地址呢,答案是可以的,在VS2012中往项目中添加一个Global.asax,小小修改:

    protected void Application_Start(object sender, EventArgs e)
    {
    RouteTable.Routes.Add(new ServiceRoute("Customer", new WebServiceHostFactory(), typeof(CustomerService)));
    }

    通过修改,我们再来测试下:

    OK,证明通过添加路由起到作用。

    到这里,一个简单也不算太简单的WCF REST 服务就已经搭建好了,下篇会来介绍如何在winFrom、JS中消费这个REST服务。

  • 相关阅读:
    Device eth0 does not seem to be present, delaying initialization(解决克隆CentOS6.3虚拟机后网卡设备无法启动问题)
    CI整合Smarty
    修改crontab默认的编辑器
    添加数据之后不跳页面显示一个漂亮的提示信息(非ajax提交数据)
    jsp连接mysql数据库
    PHP使用CURL详解
    内、外部号码范围配置
    更改SAP的字段翻译
    SAP 应用服务负载均衡的实现
    SAP中禁止特定用户更改密码
  • 原文地址:https://www.cnblogs.com/liaotongquan/p/2990737.html
Copyright © 2011-2022 走看看