zoukankan      html  css  js  c++  java
  • 地址重写中使用httpModule映射.htm的问题

     需求描述:

      IIS6.0(windows2003)中配置.htm到asp.net2.0扩展.

      需要根据用户是否修改了配置信息来生成用户首页(index.htm),为避免每一步改变后都进行一次生成操作,打算采用按访问生成的形式. 即在HttpModule中截获请求的页面,去数据库中获取当前请求页面是否改变过(即是否需要生成,每一步改变都会将数据库中的需要更新设置成true)如过页面已经改变则更新页面.但是问题就来了

    问题描述:

     1.随便输入一个http://www.wow52.cn/1134.htm时发现服务器相应缓慢,调试时发现这个请求会在服务器端不停的反复发送,导致死循环.

     2.输入实际存在的地址也回导致死循环.

    可行的解决办法:

    1:设置 Response.Expires=x,其实无论设置成什么多可以(负数,零,正数),设置CacheControl或ExpiresAbsolute也一样可以解决这个问题,我这里设置了 Context.Response.Cache.SetCacheability(HttpCacheability.Private);这个本是默认设置,但是设置一下后就可以正常运做了.

    2.自己判断.htm文件是否存在(如果是目标文件不存在则先进行生存操作,如果不是目标文件则抛出404错误),并使用Transfer进行处理,大致代码如下(HttpModule内部):

            if (Context.Request.PhysicalPath.IndexOf(".htm") > 0)
            {

          
                //****方案一 设置下面的任意一个或多个****/
                //Context.Response.ExpiresAbsolute = DateTime.Now.AddSeconds(10.0);
                //Context.Response.Expires = 100;
                //Context.Response.CacheControl = "private";
                //Context.Response.Cache.SetCacheability(HttpCacheability.Private);

                //******End 方案一 ************/

                //****方案二 判断文件存不存在以及使用Transfer****//
                if (!File.Exists(Context.Request.PhysicalPath))
                {
                    throw new HttpException(404, "文件不存在!");
                }
               Context.Server.Transfer(_url);
               //Context.RewritePath(_url);//--照样出现死循环
               //Context.Server.Execute(_url);//--输出两次

              //****End 方案二************//

            }

     方案三:

       自己实现一个.htm处理程序来捕获需要的请求,考虑上面的需求描述这种方式应该是最合适的

    十分怪异,望知情者告知

  • 相关阅读:
    Androi“.NET研究”d 源代码结构 狼人:
    Android UI“.NET研究”之困 横跨四个屏幕的战争 狼人:
    Win7 配“.NET研究”置Android开发环境 狼人:
    微“.NET研究”软“重启”Windows Phone 7 设计的经过 狼人:
    iOS开发库的族“.NET研究”谱介绍 狼人:
    文件匹配常用Linux命令小结
    functionclassAS sin函数小球运动
    持久化框架数据持久化框架(JPA)及其具体实现
    系统工程师Python工程师基础班
    设置虚拟机虚拟机中fedora上网配置bridge连接方式(图解)
  • 原文地址:https://www.cnblogs.com/wdfrog/p/1689791.html
Copyright © 2011-2022 走看看