如何调试系统
笔者下载的版本是嘟嘟提供的CNBlogsDottext ,关于这个版的说明在:
http://forums.cnblogs.com/ShowThread.aspx?PostID=485
下载后展开有如下目录存在一个工程文件,是v003版本的工程。因为是asp.net的工程,所以需要配置IIS来确保全部项目夹在成功。具体察看 OtherStuff/安装说明 ,在此列出:
1、建立DottextWeb虚拟目录, 指向CNBlogsDotText\DottextWeb, 该虚拟目录用于VS.NET打开DottextWeb项目, 不要建立*.*到asp.net的映射。
2、建立访问站点虚拟目录, 指向CNBlogsDotText\DottextWeb, 并建立*.*到asp.net的映射
注释:你看到这里建立了两个虚拟目录。第一个虚拟目录是满足vs2003工程打开需要的,因为工程的配置文件需要采用frontpage方式从IIS读取工程文件,有对此虚拟目录的引用。第二个虚拟目录是为了你运行调试使用的,因为dottext的web.config会接管全部对该目录的http全部类型文件的访问,所以需要IIS把全部请求都传递给asp.net框架,而将*.*映射到asp.net会把保证dottext接管并分析处理每一个对blog应用程序的请求。
具体为了便于测试(保持测试环境和实际运行环境),我自己在本机上创建了一个测试环境,是为了满足同我的公司域名的blog.xxx.cn一致,我另外起用了一个blog.test.com,。我在\system32\drivers\etc\host文件中加入了一行
127.0.0.1 blog.test.com
并且,新建立一个站点主机头为blog.test.com 绑定在我的局域网Ip,并且目录就设定为DottextWeb所在目录,按照2 的要求,添加了*.*到asp.net的映射。这样做,可以在你本地采用blog.text.com调试通过后,可以无需担心什么就直接覆盖上个版本就可以实现更新了。
3、安装数据库, 运行OtherStuff\SQL Scripts中有DotTextData.sql脚本,自动创建DotTextData数据库。也可以先建立数据库,然后运行DotTextData.sql脚本。忽略脚本安装错误提示,不影响正常使用。
5、初始化数据库,分别运行InitData.sql与SkinControl脚本。
6、在web.config中配置数据库连接字符串, 即<DbProvider>中的connectionString。
注释:这里,需要确保在实际运行和开发机器上的字符串一致,否则改web.config就麻烦死了。同时,需要sql连结客户端配置好(如果采用sql 的话)。
7、上述配置完成后,就可以访问了。
8、通过“新博客注册”注册一个新用户,并将该用户加入站点管理员组,操作方法:在表blog_UsersInRoles中,添加一条记录,UserID为你刚注册的用户的BlogID,RoleID为1(表blog_Roles中administrators的RoleID)。
注释:这个规则的目的是为了你能够有一个管理员账号,实现系统分类的配置。这个账号跟其他申请注册的账号的后台管理界面略有不同,多了一个管理的TAB选项页面。
9、添加网站分类:
A、以管理员用户登录,进入管理页面,打开“Manage”页面
B、选择“编辑网站分类”,添加一个分类
C、在分类名称点击“Config”,再选择添加,就会向SiteBlogConfig.config文件写入数据,如果这时出现“访问被拒绝”的错误,那是因为程序被安装在NTFS分区上,运行IIS进程的用户对程序所在文件夹没有写入权限,你需要修改一下权限设置。
10、设置首页默认显示的网站分类,在SiteBlogConfig.config中将相应的<SiteBlogConfig>设置成<IsDefault>true</IsDefault>。默认设置“首页”分类为<IsDefault>true</IsDefault>,会显示所有分类的随笔。
注释:经过以上安装,本地的确可以浏览。但是界面相当粗糙,通常,每个公司都会进行适当美化blog站的索引页和其他分栏目的索引页,所以需要先做些美化页面再加入到站点上去。后面会介绍如果修改配置实现替换系统的页面。这些需要在阅读了源码后才心里有底。呵呵。
直接在VS中按下调试时,这个时候由于运行的是上文提到的1中的目录,所以此时iis并没有将全部文件扩展映射到asp.net框架,所以会出现很多.net运行时错误,所以你不应该直接调试,而是应该启动进程调试。具体方法为:
先采用blog.test.com启动首页(让系统启动一个w3wp.exe,2000版本的是aspnet_wp.exe),然后在 调试菜单中,选定调试进程,在出现的进程列表中,找到blog.test.com 对应的应用程序进程,然后附加上,并确保CLR调试选项选定。此时,VS会进入调试状态,我们再启动访问相应的页面,如果加入了断点,会相应进入断点跟踪状态。