终于完成了将.Text Blog升级到.96的任务,从中也积累了一些编译、调试.Text Blog的经验,抽空写下些小结,希望对同样在用.Text Blog的朋友有所帮助。
一、准备源代码
1)下载dotText源代码,可以到http://www.cnblogs.com/dudu/ 下载dudu汉化版(感谢dudu)
2)在WINDOWS的安装分区中的Inetpub\wwwroot目录下建立blog目录,把源代码释放到该目录下。
目录结构为:
Inetpub\wwwroot\blog
Inetpub\wwwroot\blog\DottextWeb
Inetpub\wwwroot\blog\Dottext.Framework
.....
因为默认的Inetpub是在WINDOWS系统分区,各项配置也针对该目录,放到其它分区发现确实有DottextWeb项目无法打开的问题,具体原因不详(猜测可能是目录权限方面的问题)。
二、编译前的准备
1)打开IIS创建新的站点,主目录指向Inetpub\wwwroot\blog\DottextWeb目录,并创建名为DottextWeb的
虚拟目录也指向Inetpub\wwwroot\blog\DottextWeb目录。主目录是访问时用的,虚拟目录是给VS.net用的。
2)在站点属性->主目录->配置中应用程序配置中确保通配符应用程序映射里为空。
如果这个映射存在,VS.net将无法打开DottextWeb项目,显示如下信息:
Visual Studio .NET 无法创建或打开应用程序。问题很可能是因为本地 Web 服务器上没有安装所需的组件。
请运行 Visual Studio .NET 安装程序并添加 Web 开发组件。
然后DotextWeb项目会处于不可用状态。
去掉该映射就可以打开Inetpub\wwwroot\blog\DotText.sln进行编译了。
当工程打开并编译后,为了测试,我们又需要将通配符映射加上。指向aspnet_isapi.dll并取消“确认文件是否存在”
选项。
如果关闭VS.net后再打开,又需要在打开VS.net前将通配符先去掉,如此反复。
三、调试
先将项目配置为Debug, 然后选择调试菜单->进程->选择显示系统进程->windows2003下选择w3wp.exe->附加
->选择 Common Language Runtime 确定。
四、出现的一些错误与修改
1)评论里面点“回复”按钮没有反应,按Ctrl+Enter可以成功提交。
这是由"/aspnet_client/system_web/1_1_4322/WebUIValidation.js"这个文件引起的,该文件里有一个ValidatorCommonOnSubmit函数用于提交时检测输入的有效性,从其他.text blog网站下载该文件并替换即可。
2)升级后原来的评论人名字无法显示。
需要将原来的评论记录中的PostType修改一下:
UPDATE Blog_Content SET PostType=8 WHERE PostType=3
PostType各值的具体含义不清楚,所以只修改了PostType=3的记录。
3)升级blog后发现有所更新的blog的评论数变成了0
随笔与评论在表blog_Content中,该表定义了INSERT UPDATE DELETE 触发器blog_Content_Trigger, 用于在blog_Content表记录发生变化时重新统计随笔、评论、文章、PingTrack的数量并更新blog_Config表,评论数不正确很可能是触发器没有正常工作。将触发器所有者从dbo改为blog库的用户名解决问题。
4)提交随笔或修改随笔时偶尔出错。
经跟踪发现提交表单时:
UserControls\EntryEditor.ascx.cs 的UpdatePost()中调用Entries.Update(entry);
...
调用EntryHandling\DefaultHanlders\TrackBackHandler.cs中的Process函数, 里面有如下行:
string pageText = BlogRequest.GetPageText(link,e.Link);
用于调用链接中的TrackBack, 该函数会调用
BlogRequest.cs中的GetResponse()中的request.GetResponse();
如果该链接无法访问则抛出异常。
解决:
TrackBackHandler.cs中对BlogRequest.GetPageText进行异常捕获
string pageText = null;
try


{
pageText = BlogRequest.GetPageText(link,e.Link);
}
catch(Exception ex)


{
} 这样就解决了出错的问题。
posted on 2005-02-10 23:25 王骏的BLOG 阅读(2985)
评论(11) 编辑 收藏