• 用Response.Filter生成静态页


    我原来写的利用UrlRewrite,asp.net动态生成htm页面(补充说明2) ,生成静态页面时,使用下边的代码

    Code

    上边的这个类在生成静态页的时候,如果.net解析代码时,遇到错误,它依然会生成一个静态页面,而且这个静态页面在程序运行结束的时候,还处于打开状态。
    显然这是我们不愿意看到的,而且这个类还不支持并发操作,如果和某一页面的关联的静态页失效了,假定这时候有两个用户同时访问这个页面,其中一个用户正在向静态页面写入数据,另外一个用户却需要访问这个已被别人打开的页面,系统同样会出现错误。基于这两个问题,我把这个类修改成下边的样子,就可以解决上述问题了。
    Code

    修改的地方是构造函数和这个方法(public override void Write(byte[] buffer, int offset, int count)),调用的方法分为两种,一种是在页面级别的调用,示例如下:
        protected override void OnInit(EventArgs e)
        
    {
            
    if (!this.IsPostBack)
            
    {
                
    string filePath = this.Server.MapPath(Common.AppName) + "\\index.htm";
                Response.Filter 
    = new AspNetFilter(Response.Filter, filePath);
            }

            
    base.OnInit(e);
        }

    重写Page类的OnInit方法,另外一种调用方法参考我写的利用UrlRewrite,asp.net动态生成htm页面(补充说明2
  • 相关阅读:
    大话位运算
    Docker部署jar包
    linux系统备份mysql数据库
    关于Centos7 firewalld防火墙开放端口后仍不能访问ftp和nginx的问题解决
    MySql查询当天、本周、本月、本季度、本年的数据
    c#模拟线性回归
    监控服务器配置(五)-----Redis_exporter安装配置
    监控服务器配置(二)-----Grafana安装配置
    监控服务器配置(三)-----Node_exporter安装配置
    js网页唤起支付宝进行支付
  • 原文地址:https://www.cnblogs.com/fengfeng/p/1072505.html
Copyright © 2020-2023  润新知