打开vs2010 在工具选项中选择扩展管理器——联机库 安装WCF REST Service Template 40(CS)模板

安装后新建wcf服务应用程序,删除默认建立的文件。

新建RestWcf4HelpPage.svc,代码如下

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; namespace RestWcf
{
[ServiceBehavior(IncludeExceptionDetailInFaults=false)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class RestWcf4HelpPage : IRestWcf4HelpPage
{ #region IRestWcf4HelpPage 成员 [WebGet(UriTemplate="/Rest/Get/{id}")]
public string GetData(string id)
{
return "Hello Rest GetData";
} [WebInvoke(UriTemplate="/Rest/Add/{id}",Method="POST")]
public string AddData(string id)
{
return "Hello Rest AddData";
} [WebInvoke(UriTemplate = "/Rest/Update/{id}", Method = "PUT")]
public string UpdateData(string id)
{
return "Hello Rest UpdateData";
} [WebInvoke(UriTemplate = "/Rest/Delete/{id}", Method = "Delete")]
public string DeleteData(string id)
{
return "Hello Rest DeleteData";
} #endregion
} [XmlSerializerFormat]
[ServiceContract]
interface IRestWcf4HelpPage
{
[OperationContract]
string GetData(string id); [OperationContract]
string AddData(string id); [OperationContract]
string UpdateData(string id); [OperationContract]
string DeleteData(string id);
}
}

然后在建立RestWcf4Cache.svc,代码如下

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; namespace RestWcf
{
[ServiceBehavior(IncludeExceptionDetailInFaults=false)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class RestWcf4Cache:IRestWcf4Cache
{ #region IRestWcf4Cache 成员 [AspNetCacheProfile("CacheFor10Senconds")]
[WebGet(UriTemplate = "/Rest/Get/{id}")]
public string GetData(string id)
{
return "Hello Rest GetData " + DateTime.Now.ToString();
} #endregion
} [ServiceContract]
interface IRestWcf4Cache
{
[OperationContract]
string GetData(string id);
}
}

然后在配置web.config文件,其中duration值缓存的有效时间。

<?xml version="1.0" encoding="utf-8"?>
<configuration> <system.web>
<compilation debug="true" targetFramework="4.0" />
<caching>
<outputCacheSettings>
<outputCacheProfiles >
<add name="CacheFor10Senconds" duration="" varyByParam="format"/>
<add name="CacheFor30Senconds" duration="" varyByParam="format"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
<system.serviceModel>
<services>
<service name="RestWcf.RestWcf4HelpPage">
<endpoint address="" behaviorConfiguration="RestWcf4HelpPageBehavior"
binding="webHttpBinding" contract="RestWcf.IRestWcf4HelpPage" />
</service>
<service name="RestWcf.RestWcf4Cache">
<endpoint address="" behaviorConfiguration="RestWcf4CacheBehavior"
binding="webHttpBinding" contract="RestWcf.IRestWcf4Cache" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="RestWcf4HelpPageBehavior">
<webHttp helpEnabled="true" />
</behavior>
<behavior name="RestWcf4CacheBehavior">
<webHttp helpEnabled="true" />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer> </configuration>

帮助页面的效果如下图

get请求结果如下图

缓存效果如图,缓存的时间设置为10s,在10s内结果都是下图,超过时间后就是另一个结果了

WCF rest 的帮助页面和缓存机制的更多相关文章

  1. HTTP协议缓存机制的应用

    缓存的目 的是减少相应延迟 和 减少网络带宽消耗, 比如 css. js.图片这类静态资源应该进行缓存.实际项目 一般使用反向代理服务器(如 nginx. apache 等) 进行缓存. 关键字:ca ...

  2. WCF技术剖析之八:ClientBase<T>中对ChannelFactory<T>的缓存机制

    原文:WCF技术剖析之八:ClientBase<T>中对ChannelFactory<T>的缓存机制 和传统的分布式远程调用一样,WCF的服务调用借助于服务代理(Service ...

  3. 页面静态化3 --- 使用PHP页面缓存机制来完成页面静态化(下)操作一个案例(新闻管理系统)

    案例需求: 使用PHP缓存机制完成新闻管理系统的页面静态化数据库表 ecs_article (新闻表)因为新闻这些信息,并不是对实时性要求高,本身这个新闻比较稳定,内容也比较固定,所以我们考虑: 当第 ...

  4. 页面静态化2 --- 使用PHP缓存机制来完成页面静态化(上)(ob_flush和flush函数区别用法)

    我们可以使用PHP自带的缓存机制来完成页面静态化,但在这里,需要说明一点,仅靠PHP缓存机制并不能完美的解决页面静态化,往往需要和其他页面静态技术(通常是伪静态技术)结合使用 例子: 当访问一个页面时 ...

  5. 利用php的ob缓存机制实现页面静态化

    利用php的ob缓存机制实现页面静态化 首先介绍一下php中ob缓存常用到的几个常用函数ob_start():开启缓存机制ob_get_contents():获取ob缓存中的内容ob_clean()清 ...

  6. php利用ob缓存机制实现页面静态化方法全解

    首先介绍一下php中ob缓存常用到的几个常用函数 ob_start():开启缓存机制 ob_get_contents():获取ob缓存中的内容 ob_clean()清除ob缓存中的内容,但不关闭缓存 ...

  7. 三,PHP缓存机制实现页面静态化

    页面静态化思路: 因为新闻这种信息对实时性要求不高,并且比较稳定,所以可以这样做:当地一个用户访问某条新闻后,我们使用ob缓存机制,将内容缓存到html页面.当下一次访问时候,直接访问html页面.这 ...

  8. 解决iframe缓存机制导致页面不清除缓存不刷新页面的bug

    在使用iframe时,已有页面嵌套了一个iframe页面,当这个页面提交后再次跳转到本页面时,原本iframe内的页面应该刷新数据的,结果未刷新,需要清除缓存后才刷新. 解决方案: var fresh ...

  9. 【腾讯Bugly干货分享】彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/qOMO0LIdA47j3RjhbCWUEQ 作者:李 ...

随机推荐

  1. NSSelectorFromString 使用示例

    NSSelectorFromString 动态加载实例方法. SEL sel = NSSelectorFromString(@"yourMethod:")//有参数 if([obj ...

  2. 使用java以及jdbc不使用第三方库执行sql文件脚本

    使用java以及jdbc不使用第三方库执行sql文件脚本 2017年02月15日 15:51:45 阅读数:660 使用java执行sql脚本的方法 解析sql脚本,删除不必要的注释和空行 将语句按分 ...

  3. Clos Network

    1952年,Charles Clos 设计出了一种多级的交换架构,用多级的小型交换机阵列来构建一张大的无阻塞的网络.在此之前,要实现“无阻塞的架构”,只能采用NxN的Cross-bar方式. 而Clo ...

  4. SqlBulkCopy(批量复制)使用方法 && SqlDataAdapter Update

    SqlBulkCopy提供了一种将数据复制到Sql Server数据库表中高性能的方法.SqlBulkCopy 包含一个方法 WriteToServer,它用来从数据的源复制数据到数据的目的地. Wr ...

  5. [转]Marshaling a SAFEARRAY of Managed Structures by P/Invoke Part 1.

    1. Introduction. 1.1 I have previously written about exchanging SAFEARRAYs of managed structures wit ...

  6. Go语言环境安装-Mac

    1.环境安装 Go SDK下载和安装,下载地址为:https://golang.org/dl/ Visual Studio Code下载和安装,下载地址为:https://code.visualstu ...

  7. myql 服务启动不了怎么办

    今天,不小心手动将mysql 服务停掉后,怎么也启动不了,后面查了半天 ,终于知道要先将任务管理器里的mysql.exe 先Kill掉,然后可以启动了,记录一下

  8. Linq to Objects for Java

    好几年不写博客了,人也慢慢变懒了.然而想写了却不知道写点啥,正好最近手头有点小项目就分享一下经历. 现在 java 的大环境下,基本都是围着 spring 转,加上一堆其他的库.有了架子就开始搞业务了 ...

  9. 正经学C#_布尔运算[布尔值与其布尔运算符]:《c#入门经典》

    前面几个章节简述了 C#中得常用得算术运算符.这一章节说布尔值与其布尔运算符. 布尔值在c#中表示方式是 bool类型,这个类型可以储存两个值,true或者false,或者真或者假,可以说0或者1. ...

  10. 自定义非等高 Cell

    1.自定义非等高 Cell介绍 1.1 代码自定义(frame) 新建一个继承自 UITableViewCell 的类. 重写 initWithStyle:reuseIdentifier: 方法. 添 ...