1 缓存

1.1.1

  1. <%--通过设置VaryByParam ="none" 来实现 整页缓存 --%>
    <%@ OutputCache Duration="" VaryByParam ="none" %>

1.1.2

  1. <%--带参数缓存,只要包含在VaryByParam 中的任何一个参数改变都会使页面缓存失效,如果当前参数不包含在VaryByParam中,则改变也无效--%>
    <%@ OutputCache Duration="" VaryByParam="id;name;age" %>

1.1.3

  1. <%--根据控件id来缓存整个页面--%>
  2.  
  3. <%@ OutputCache Duration="" VaryByControl="a" %>

1.2 【Wed.config】 配置 缓存

  1. <%@ OutputCache CacheProfile="MyCacheTest"%> 【Wed.config】 下的配置
    <system.web>
      <compilation debug="true" targetFramework="4.0" />
    <!--统一页面缓存管理配置节点-->
      <caching>
        <outputCacheSettings>
          <outputCacheProfiles>
          <!--duration:缓存事时间 name:缓存名称,在页面使用的时候 CacheProfile要指定name中设置的值-->
            <add name="MyCacheTest" duration="" varyByParam="none" />
           </outputCacheProfiles>
        </outputCacheSettings>
      </caching>

1.3 文件缓存 在asp中的后台代码:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. string atxtContent;
  4.  
  5. if (Cache["datetimenow"] != null)
  6. {
  7. //lbdatetime.Text = Cache["datetimenow"].ToString();
  8. lbdatetime.Text = Cache["datetimenow"].ToString();
  9. }
  10. else
  11. {
  12. DateTime now = DateTime.Now;
  13. #region 设置缓存的绝对过期时间
  14. Cache["datetimenow"] = now.ToString();
  15. //设置缓存的绝对过期时间 中不设置相对过期时间 写法一:TimeSpan.Zero
  16. Cache.Insert("datetimenow", now, null, DateTime.Now.AddSeconds(), TimeSpan.Zero);
  17. //设置缓存的绝对过期时间 中不设置相对过期时间 写法二:System.Web.Caching.Cache.NoSlidingExpiration
  18. Cache.Insert("datetimenow", now, null, DateTime.Now.AddSeconds(), System.Web.Caching.Cache.NoSlidingExpiration);
  19. #endregion
  20.  
  21. #region 设置缓存的相对过期时间
  22. //设置缓存的相对过期时间
  23. Cache.Insert("datetimenow", now, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(, , , )
  24. , System.Web.Caching.CacheItemPriority.High, myCacheItemRemovedCallback);
  25. #endregion
  26.  
  27. #region 文件缓存依赖,首先:绝对过期时间和相对过期时间要设置不过期
  28. //文件缓存依赖,首先:绝对过期时间和相对过期时间要设置不过期
  29. // 定义该缓存要依赖的文件,注意传入文件的绝对路径
  30.  
  31. atxtContent = System.IO.File.ReadAllText(Server.MapPath("b.txt"));
  32. CacheDependency cdFile = new CacheDependency(Server.MapPath("a.txt"));
  33.  
  34. Cache.Insert("datetimenow"
  35. , atxtContent
  36. , cdFile
  37. , System.Web.Caching.Cache.NoAbsoluteExpiration
  38. , System.Web.Caching.Cache.NoSlidingExpiration
  39. , System.Web.Caching.CacheItemPriority.High, myCacheItemRemovedCallback
  40. );
  41. #endregion
  42.  
  43. lbdatetime.Text = atxtContent;
  44. }
  45.  
  46. }
  47.  
  48. #region 当缓存被移除的时候,系统会自动调用该回调函数 +myCacheItemRemovedCallback(string key, object value, CacheItemRemovedReason reason)
  49. /// <summary>
  50. ///当缓存被移除的时候,系统会自动调用该回调函数
  51. /// </summary>
  52. /// <param name="key">当前失效的缓存key</param>
  53. /// <param name="value">当前失效时缓存key对应的缓存内容</param>
  54. /// <param name="reason">缓存失效的原因</param>
  55. void myCacheItemRemovedCallback(string key, object value, CacheItemRemovedReason reason)
  56. {
  57. System.IO.File.WriteAllText(@"E:\传智播客\7期班\2013-9-15 asp.net高级 缓存,工厂,单例\源代码\缓存\WebApplication1\log.txt"
  58. , "key=" + key + " value=" + value + " reason=" + reason);
  59. }
  60. #endregion

1.4 数据库缓存 直接在【Web.config】中配置

  1. <configuration>
  2. <connectionStrings>
  3. <add name="CachedbConnectString" connectionString="data source=.;initial catalog=PhoneBook;user id=sa;password=123" providerName="System.Data.SqlClient"/>
  4. </connectionStrings>
  5. <system.web>
  6. <compilation debug="true" targetFramework="4.0" />
  7. <!--统一页面缓存管理配置节点-->
  8. <caching>
  9.  
  10. <sqlCacheDependency enabled="true" pollTime="">
  11. <databases>
  12. <add name="PhoneBook" connectionStringName="CachedbConnectString"/>
  13. </databases>
  14. </sqlCacheDependency>
  15.  
  16. </caching>
  17.  
  18. </system.web>
  19.  
  20. </configuration>

URL重写

方法一:

新建一个 【Global.asax】文件 在它的  Application_BeginRequest 方法里写 获取URL,并通过 正则表达式 将 URL 重写

  1. //得到当前url的请求路径
  2. string currUrl = HttpContext.Current.Request.RawUrl; //top/1
  3. string newUrl = "";
  4.  
  5. //定义正则表达式
  6. System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("index/(.*)/(.*)");
  7. if (reg.IsMatch(currUrl))
  8. {
  9. //将匹配的url替换成"index.aspx?id=$1&name=$2" 类型的字符串
  10. newUrl = reg.Replace(currUrl, "index.aspx?id=$1&name=$2");
  11.  
  12. //重写是靠RewritePath(path) path只能传相对路径index.aspx?id=1&name=2 而不能传http://loclhost/index.aspx?id=1&name=2
  13. HttpContext.Current.RewritePath(newUrl);

方法二:在Internet 中选中网站后

在URL 重写中 --添加规则 --用户友好URL

           

在这里就是将你要修改的URL写到URL 输入框里,下面的下拉框选择你要的URL格式

  如果有漏的,希望有大神补充一下!!

ASP 缓存处理及URL 重写的更多相关文章

  1. 转载MSDN 在ASP.NET 中执行 URL 重写

    转载文章原网址 http://msdn.microsoft.com/zh-cn/library/ms972974.aspx 摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重 ...

  2. ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置

    核心提示:大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有 ...

  3. 【ASP.NET Core】URL重写

    今天老周和大伙伴们聊聊有关 Url Rewrite 的事情,翻译过来就是 URL 重写. 这里不得不提一下,URL重定向与重写的不同. 1.URL重定向是客户端(通常是浏览器)向服务器请求地址A,然后 ...

  4. 在 ASP.NET 中执行 URL 重写的方法

    由于需要我们经常会想将动态的页面做成伪静态的,或者在get传值的时候使其简洁明了(实现“可删节”的URL),这时我们需要用到URL重写,微软的MSDN上有详细的原理和使用介绍.我这里就将一种简单的使用 ...

  5. ASP.NET过滤器、URL重写

    过滤器可以对指定的URL访问进行拦截,并执行过滤器的方法,根据实际应用情况,在过滤器中修改请求的代码.判断会话信息,也可以做权限控制. 一:编写过滤器,实现URL重写并配置过滤 编写过滤器,就是编写一 ...

  6. ASP.NET 中执行 URL 重写

    具体实现步骤(其中的一种实现方法): 一.下载相关的DLL(ActionlessForm.dll和UrlRewriter.dll) http://download.csdn.net/detail/yi ...

  7. UrlRewrite(URL重写)--ASP.NET中的实现

    概述 今天看了下URL重写的实现,主要看的是MS 的URL Rewrite. URL重写的优点有:更友好的URL,支持老版本的URL URL重写的缺点有:最主要的缺点是性能低下,因为如果要支持无后缀的 ...

  8. ASP.NET Core 2 学习笔记(八)URL重写

    路由跟URL 重写的功能性略有不同.路由是将Request 找到对应的服务,而URL 重写是为了推卸责任转送Request.本篇将简单介绍下ASP.NET Core的URL重写(URL Rewrite ...

  9. C# WebService URL重写

    背景 有时候我们会有这样的需求,将 WebService URL 中的 asmx 后缀去掉:或者我们要模拟普通 Web 的 URL,接口名称直接拼接在 URL 中.这些情况我们都要用到URL重写. 关 ...

随机推荐

  1. 利用FFmpeg玩转Android视频录制与压缩(二)<转>

    转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女 ...

  2. 服务器报警邮件发送到QQ邮箱,但是被系统拦截

    # 为啥发送到QQ邮箱呢?因为QQ邮箱可以和微信关联,第一时间收到消息 if 没有设置白名单,然后被拦截当做垃圾邮件了: 设置白名单就可以了,这样的状态特征是: 邮件在垃圾箱里面能找到 elif 还是 ...

  3. 【310】◀▶ Python 日期和时间

    参考: python 时间日期计算 Python 日期和时间(菜鸟教程) 8.1. datetime — Basic date and time types python中datetime模块中dat ...

  4. C#中打开设计视图时报"未将对象引用设置到对象的实例"

    通常情况下,若是你将用户控件写好了放入窗体中,若是有不合理的代码,则会弹出错误提示框,不让你放.若是你之前只是随便加了一个用户控件,并且没有什么问题,但后来你又把控件改坏掉了,那么你打开就会报错(在窗 ...

  5. 网络编程-socket开发

    练习: 1.什么是C/S架构? 2.互联网协议是什么?分别介绍五层协议中每一层的功能? 3.基于tcp协议通信,为何建立链接需要三次握手,而断开链接却需要四次挥手 4.为何基于tcp协议的通信比基于u ...

  6. Linux系统中当前路径不加入PATH的原因

    主要是出于安全的考虑,由于系统默认是允许所有人在/tmp下写入任何文件的,万一有居心不良的用户或者黑客入侵到计算机,并在/tmp下面埋下木马,名字为ls,当用户用root身份登录后,到/tmp目录执行 ...

  7. HowTo: Xen 4.1.3 Windows 8 HVM domU with Intel HD4000 VGA Passthrough on Debian Wheezy

    http://linux-bsd-sharing.blogspot.com/2012/10/howto-xen-413-windows-8-hvm-domu-with.html Update 05/0 ...

  8. C#跨线程操作控件的最简单实现探究

    随着程序复杂度的提高,程序不可避免会出现多个线程,此时就很可能存在跨线程操作控件的问题. 跨线程操作UI控件主要有三类方式: 1.禁止系统的线程间操作检查.(此法不建议使用) 2.使用Invoke(同 ...

  9. ZPL语言说明文档

    ■格式命令(format commands) 以︿开始 用于设定标签格式与数据 多条格式指令按顺序执行 ■控制指令(control commands) 以~开始 迫使打印机立即执行某一个指令的操作 可 ...

  10. CentOS 7 下 ifconfig command not found 解决办法

    1.查看ifconfig命令是否存在 查看 /sbin/ifconfig是否存在 2.如果ifconfig命令存在,查看环境变量设置 [root@localhost ~]# echo $PATH 如果 ...