QBlog官方博客

本博将记录与秋色园成长相关的历史路程及秋色园的开发进展等相关情况。
公告信息
欢迎光临秋色园官方博客,欢迎:下载与使用CYQBlog系统,并提出您的意见与建议。
文章档案
最新评论
文章
秋色园QBlog技术原理解析:博客一键安装工具技术实现[附源码下载]
2011/3/23 9:18:45

曾经在:秋色园QBlog V2.5 后台管理系统源码发布下载 一文中,有网友 parabeyond 留言:

秋天哥问下 秋色园将完了吗
可以介绍下 一键安装工具 是怎么实现的吗 想学

本人答复:

引用parabeyond:
秋天哥问下 秋色园将完了吗
可以介绍下 一键安装工具 是怎么实现的吗 想学

想学啊,好,改天写一篇文章分享下源码和知识!

既然答应了,今天就为大伙分享一下 路过秋天版博客一键安装工具.exe 的技术原理。

一:秋色园QBlog 一键安装工具的界面

1:web.config配置界面

说明:通过此界面,可以直接操作web.config文件,进行基础的配置。

2:新建网站

说明:通过“创建站点”按钮,可以在IIS中创建新站点。并附一些IIS常用操作功能。

PS:本工具目前仅在Xp/2003系统下测试通过,win7及其它系统可能无法使用此工具在本地安装秋色园QBlog。

于是,需要手动安装,详情见:Windows7下如何安装部署秋色园CYQBlog站点

二:秋色园QBlog 一键安装工具技术原理

1:分析:要实现这么一个工具,都需要些什么技术?

1:操作web.config:第一个界面就看清了什么功能了。

2:操作IIS:创建站点,包括IIS附加功能。

3:操作IO:检测,修改Host文件,为文件夹添加读写权限。

2:看一下项目解决方案

为此,为了处理一些重大的技术点,随手封装几个Helper类来处理。

3:解析Helper类

3.1:WebConfigHelper:操作web.config助手类

说明:

从上图看,此辅助类只适用于操作AppSetting和ConnectionStrings节点,

基本操作就是Get取值与Set赋值,最后就是Save保存文件。

PS:由于后面会有整个项目源码下载,所以细节代码就不贴了。

3.2 : IISWebSiteManager:操作IIS站点

说明:

通过此类,可以轻松操作IIS站点的创建和删除、停止与启动等功能。

PS:Xp下同时只能启动一个站点,所以秋色园QBlog安装工具界面上有提示,先停止默认站点。

3.3:IISHelper:操作IIS

说明:

IIS操作相对简单,就是启动,停止和重启。

3.4:IOHelper:简单的IO操作

说明:

此类主要用于路径检查,主要是由于系统安装不一定在C盘,所以需要检测多个盘符,同时,附带一个对文件夹添加everyone用户,并设置读写的权限。

PS:好多网友在Xp下安装后,发现写权限设置并没有生效,这个原因,个人猜想可能是:

1:可能是[工具-文件夹选项-简单文件共享]的勾没去掉时,所以设置不了写权限

2:可能是文件的只读属性问题

4:Winform布局及Helper相关类的调用

有了上述几个Helper的相助之后,剩下的也就是布局下界面,然后进行一些常规的调用工作了。

常规代码比较多,这里只截方法名,详细代码自行阅读源码了。

其它说明:

在点击“创建站点”时,会有一个多线程动作产生,然后输出一系列提示文件。

在线程中,一般是无法对控件进行操作的,简单的处理方法是设置一下form的属性:

Form1.CheckForIllegalCrossThreadCalls = false;

 

三:源码下载

点击下载: QBlogInstall.rar

秋色园是QBlog的官方站点,由路过秋天创建,基于cyqdata数据层框架开发的支持多用户、多语言、多数据库(access,mssql,oracle)、目录级url等功能强大的博客系统
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"
 秋色园技术原理解析    浏览(6906)    评论(8)    关键字 秋色园,qblog,cyqblog,net,博客,博客一键安装工具,技术实现
kingboy2011 : 2011/6/15 9:29:01
感谢分享!!
游客[注册] : 2011/6/10 17:06:58
很关注你这个对IIS 安装问题
回复不知道你关注的是哪一点?
游客[注册][116.231.24.*] : 2011/6/9 13:00:45
无法注册?
回复可以注册,字母小写》4位,正规的写法就可以了。
游客[注册][182.48.112.*] : 2011/5/5 22:16:58
string systemC="C:";
public IISWebSiteManager()
{
systemC=....;
}
你这里“string systemC="C:"”是没必要的,写成string systemC;即可
ghd2004 : 2011/3/24 8:47:28
很不错。支持你!
回复:) 谢谢支持!常来看看~
reavic : 2011/3/23 22:39:10
持续关注。
回复:) 欢迎常来~
pasttime[115.195.177.*] : 2011/3/23 18:59:57
持续关注。
回复:) 欢迎持续的关注。
口味菜.com : 2011/3/23 18:09:51
很好用,会一直关注的。
回复:) 感谢您一如既往坚持的关注。
  
Copyright © 2010-2020 power by CYQ.Blog - 秋色园 v2.0 All Rights Reserved