zoukankan      html  css  js  c++  java
  • DotText源码阅读(1)调试

    如何调试系统
    笔者下载的版本是嘟嘟提供的CNBlogsDottext ,关于这个版的说明在:
    下载后展开有如下目录存在一个工程文件,是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版本的是),然后在 调试菜单中,选定调试进程,在出现的进程列表中,找到blog.test.com 对应的应用程序进程,然后附加上,并确保CLR调试选项选定。此时,VS会进入调试状态,我们再启动访问相应的页面,如果加入了断点,会相应进入断点跟踪状态。
     
     Update:
    看到有兄弟留言说还搞不定调试,再次补充:
    0、确保你是调试机器的管理员
    1、首先确保你的工程是debug版本,默认下载的好象是release版本。这个不用我说怎么做吧
    2、配置好blog.test.com的本地解析,确保cmd.exe状态下ping blog.test.com 是本机IP
    3、配置好主机头,在第二个blog站点加上这个主机头
    4、访问 blog.test.com 这个时候系统会启动一个asp.net的应用程序,2000操作系统上是aspnet_wp.exe,2003系统是w3wp.exe,这个在进程列表中可以看到的进程就是你需要调试的
    5、点调试菜单,找到“进程...”选择后,出现了一个仅测和列表框,你会看到有aspnet_wp.exe或者w3wp.exe在其中,选择刚启动的那个。至于如果有好几个同名进程,那。。。简单点 就是将w3svc服务重新启动,然后其他的什么都不做,访问blog.test.com一次,自然就只有一个asp.net应用程序进程。
    6、选中它,点击“附加...”会自然附加,弹出的对话框中的common language runtime必须被选择
    7、确定关闭后,vs会进入调试状态,你可以随意加入断点,然后通过访问特定的url来激活断点。
    8、如果还搞不定,请先请您公司的同事,然后再考虑发贴问人。我的email:myjobsdk#yahoo.com.cn,我只能不定期检查这个邮件来做本文的力所能及的支持。
    谢谢关注,希望大家能够补充我的不足!
     
    2006-5-11 update:
    有兄弟询问如何配置*.*到asp.net的映射,特此在此补充:
    windows2000 和windows2003做的配置是不一样的,
    2000的配置如下:
         1、iis管理器,打开blog站点的属性
         2、主目录,在 应用程序设置中 选择 配置。。。
         3、应用程序映射,点击 添加。。。
         4、可执行文件选择  WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll 这个需要同你的.net framework当前版本一致
         5、扩展名 输入 *, 方法:GET,POST
         6、不要选中 “检查文件是否存在”,选定限于脚本引擎
    2003 无法输入*到aspnet_isapi.dll 的映射,需要:
          1、iis管理器,打开blog站点的属性
         2、主目录,在 应用程序设置中 选择 配置。。。
         3、映射,应用程序扩展是没法输入*到 aspnet_isapi.dll 的映射  
         4、在下面的 通配符应用程序映射 (执行顺序)中 插入 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,也要注意 不要选择“确认文件是否存在”
    不要选择“确认文件是否存在”的目的是避免访问一些物理文件不存在的资源时候可以被aspnet_isapi.dll处理请求,也就是进入.net执行框架
  • 相关阅读:
    Best Time to Buy and Sell Stock III
    Valid Palindrome
    Longest Substring Without Repeating Characters
    Copy List with Random Pointer
    Add Two Numbers
    Recover Binary Search Tree
    Anagrams
    ZigZag Conversion
    Merge k Sorted Lists
    Distinct Subsequences
  • 原文地址:https://www.cnblogs.com/jasononline/p/767184.html
Copyright © 2011-2022 走看看