ASP.NET生成静态方法
CMS系统如果新闻多了,全部生成静态的话。不现实,而且占用空间比较大。那么只生成网站首页是必须的了,下面列出JCMS首页生成静态的方法。换一种思路其实更简单。
当点击生成首页静态的时候。去获取动态首页的源代码,然后在网站根目录生成一个index.htm的文件为静态首页就好了
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
protected void Button2_Click(object sender, EventArgs e) { string asd = GetHtml(""+new JCMS.BLL.Jcms_sysconfig().GetModelByCache(1).Doname+"/index.aspx", "utf-8"); FileStream fs= File.Create(Server.MapPath("~/index.htm")); StreamWriter sw = new StreamWriter(fs,Encoding.UTF8); sw.Write(asd); sw.Close(); fs.Close(); Response.Write("<script>alert('操作完成!');location.href='" + Request.Url.AbsoluteUri + "'</script>"); } |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/// <summary> /// 根据提供的地址和编码下载网页。 /// </summary> /// <param name="url">url是要访问的网站地址</param> /// <param name="charSet">charSet是目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码</param> /// <returns></returns> public static string GetHtml(string url, string charSet) { string strResult = string.Empty; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); //request.Timeout = 0x9c40; request.Timeout = 60000; request.Headers.Set("Pragma", "no-cache"); Stream streamReceive = ((HttpWebResponse)request.GetResponse()).GetResponseStream(); Encoding encoding = Encoding.Default; if (!string.IsNullOrEmpty(charSet) && Encoding.GetEncoding(charSet) != Encoding.Default) encoding = Encoding.GetEncoding(charSet); strResult = new StreamReader(streamReceive, encoding).ReadToEnd(); } catch (Exception ex) { //Global.LogInfo = "未能获取服务器数据,请稍候再试!" + ex.Message; } return strResult; } /// <summary> /// /// </summary> /// <param name="url"></param> /// <param name="SavaPath"></param> public static void SavaWebFile(string url, string SavaPath) { //指针的位置 long lStartPos = 0; int READ_SIZE = 8 * 1024; FileStream fs; if (File.Exists(SavaPath)) { fs = File.OpenWrite(SavaPath); lStartPos = fs.Length; fs.Seek(lStartPos, SeekOrigin.Current); } else { fs = new FileStream(SavaPath, FileMode.OpenOrCreate, FileAccess.Write); } //打开网络连接 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); HttpWebResponse myHttpWebResponse = null; if (lStartPos > 0) { request.AddRange((int)lStartPos);//设置Range值 } try { myHttpWebResponse = (HttpWebResponse)request.GetResponse(); } catch (WebException e) { if (fs != null) fs.Close(); if (myHttpWebResponse != null) myHttpWebResponse.Close(); //Global.LogInfo = "未能获取服务器数据,请稍候再试!" + e.Message; } //向服务器请求,获得服务器回应数据流 Stream strm = myHttpWebResponse.GetResponseStream(); //开始下载。 byte[] buffer = new byte[READ_SIZE]; int bufferSize = buffer.Length; int readCount = READ_SIZE; while (readCount > 0) { readCount = strm.Read(buffer, 0, bufferSize); if (0 == readCount) { break; } fs.Write(buffer, 0, readCount); } fs.Close(); myHttpWebResponse.Close(); strm.Close(); } |
这样生成后。看看网站打开是不是飞快了?
ASP.NET生成静态方法的更多相关文章
- ASP.NET生成WORD文档,服务器部署注意事项
网上转的,留查备用,我服务器装的office2007所以修改的是Microsoft Office word97 - 2003 文档这一个. ASP.NET生成WORD文档服务器部署注意事项 1.Asp ...
- asp.net生成PDF文件 (1)
asp.net生成PDF文件 (1) 这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: 1 2 3 4 5 6 7 8 9 10 11 ...
- asp.net生成二维码的方法
asp.net生成二维码的方法 [复制链接] 这个要利用一个Dll文件. 如下 Gma.QrCodeNet.Encoding.dll (105.5 KB, 下载次数: 27) 当然大家也可以直 ...
- asp.net生成RSS
经常看到博客.还有很多网站中有RSS订阅,今天就来玩玩asp.net生成RSS,在网上查找了相关资料 发现just soso,如下: aspx <?xml version="1.0&q ...
- asp.net 生成、解析条形码和二维码
原文 asp.net 生成.解析条形码和二维码 一.条形码 一维码,俗称条形码,广泛的用于电子工业等行业.比如我们常见的书籍背面就会有条形码,通过扫描枪等设备扫描就可以获得书籍的ISBN(Intern ...
- asp.net 生成xml文件 与 asp生成xml文件
一.asp.net 生成xml文件 webservice方式,调用接口: public XmlDocument List() { XmlDocument doc = new XmlDocument() ...
- Asp.net 生成静态页面
http://www.cnblogs.com/tonycall/archive/2009/07/18/1526079.html Asp.net 生成静态页面(简单用法) 第一次发表,有什么错误,请大家 ...
- asp.net生成word文档服务器配置
一.asp.net生成word文档,布署到正式的服务器上就出现 错误:System.Runtime.InteropServices.COMException (0x800A1098 ...
- asp.net生成店铺推广二维码,二维码中间加logo(源码)
二维条码比一维条码记载数据量更多,二维码条码是一种高密度.高信息含量的便携式数据文件,是实现证件及卡片等大容量.高可靠性信息自动存储.携带并可用机器自动识读的理想手段.而且可以记载更复杂的数据,比如图 ...
随机推荐
- html5 基本布局+新标签+新选择器 + 线性渐变
html5 基本布局+新标签 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- linux下mysql的简单使用
写这篇的主要目的是记录一点mysql的基本使用方法,当然sql查询语句本来就有不少东西,这里就不一一介绍,这个网址有详细的教程(http://www.sdau.edu.cn/support/mysq_ ...
- 初识RPC协议
什么是rpc框架 先回答第一个问题:什么是RPC框架? 如果用一句话概括RPC就是:远程调用框架(Remote Procedure Call) 那什么是远程调用? 通常我们调用一个php中的方法,比如 ...
- FrameLayout
FrameLayout是最简单的布局了. ① 所有放在布局里的控件,都按照层次堆叠在屏幕的左上角.后加进来的控件覆盖前面的控件. ② 该布局container可以用来占有屏幕的某块区域来显示单一的对象
- jQuery基础知识点(DOM操作)
1.样式属性操作 1)设置样式属性操作 ①设置单个样式: // 第一个参数表示:样式属性名称 // 第二个参数表示:样式属性值 $(selector).css(“color”, ...
- 智能车学习(七)——按键矩阵的实现
一.原理说明 就是按键矩阵代码书写的一个说明,就是讲K5到K7先输出高电平,而K1和K4则调成上拉输入,如果检测到K1到K4有一个变为0,说明有按键按下去,立刻进行转换,是的K1到K4设置为输出高电平 ...
- Hadoop Mapreduce分区、分组、二次排序过程详解[转]
原文地址:Hadoop Mapreduce分区.分组.二次排序过程详解[转]作者: 徐海蛟 教学用途 1.MapReduce中数据流动 (1)最简单的过程: map - reduce (2) ...
- 【转载】C++中public,protected,private访问
第一:private, public, protected 访问标号的访问范围. 假如我们约定: 类内部-----指的是当前类类型的定义中,以及其成员函数的声明和定义中: 类外部-----指的是不在当 ...
- 00_Java基本常识
1. 基本常识 软件:一系列按照特定顺序组织的计算机数据和指令的集合. 常见的软件:系统软件 和 应用软件. 人机交互:图形化界面.命令行方式 计算机语言:人与计算机交流的方式 dos常见命令 ...
- C# 词法分析器(三)正则表达式
系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 正则表达式是一种描述词素的重要表示方法.虽然正则表达 ...