关于这个.Text blog的安装, 可谓费尽周折. ScottW写了这个程序, 从程序本身来说, 可以说非常的棒, 可是安装方面介绍的太少了, 而且问题多多. 我原来一直以为安装这样一个Web程序, 应该没什么的, 最多半个小时还搞不定吗. 结果前后用了一个礼拜才搞清楚该怎么安装. 最早是直接从.Text主页下载的代码, 按照ReadMe安装的, 发现没法运行就去找'开心就好'指点, 他给了点帮助但是始终没法解决我的问题(现在感觉开心老大应该也不是很清楚...). 后来到了11月12号, 微软的ASP.NET Forum开了.Text版, 终于可以方便的直接和ScottW联系了. 是他帮我解决的问题.
首先需要一个ASP.NET的环境, 就是IIS5.0以上和.NET Framework1.1, 还必须有MSSQL服务器的支持. 这个程序有三种运行方式, Single Blog, Multiple Blog with Folders和Multiple Blog in Root Folder. Single Blog没什么好说的, 就是建立一个单用户的Blog了. 后面两个分别对应于http://xxx/WebLog/Blogger 和http://xxx/Blogger/ 这样的安装方式, 就是看你是把程序放在站点的一个子目录下, 还是放在根目录下. 我是放在根目录下的.
复制完文件, IIS里建立站点后, 还要建立数据库实例(只支持MSSQL), 使用查询分析器执行那三个SQL文件(在Data_Setup文件夹). 再插入第一条记录(demo):
INSERT INTO [blog_Config]
(
[UserName], [Password], [Email], [Title], [SubTitle],
[Skin], [Host], [Author], [TimeZone],
[IsActive], [Language], [ItemCount], [AllowServiceAccess], [LastUpdated],
[News], [SecondaryCss],
[Application]
)
VALUES
(
'demo', 'demo', 'demo@demo.com','Demo Blog', 'A demo blog',
'marvin3-red', 'localhost','Demo',-5,
1,'en-US', 15, 1,'7/28/2003', null, null,
'UPDATE THIS VALUE HERE BEFORE YOU RUN ME'
)
注意'UPDATE THIS VALUE HERE BEFORE YOU RUN ME'这个地方, 你要在执行这个SQL语句前, 把它改为demo, 还有'localhost'要改为你的Blog站点的域名或者IP. 比如我的就是blog.sunmast.com.
这时候有两个Bug需要自己手工搞定. 一个是DNW_GetRecentPosts存储过程, 你得把里面and Blog_content.ID <> 50拿掉, 不然ID为50的Blogger发的blog永远不会在首页显示出来. 还有就是要手工给blog_config表建立一个触发器:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER blog_Content_Trigger
On blog_Content
AFTER INSERT, UPDATE, Delete
as
Declare @BlogID int
--Get the current blogid
Select @BlogID = BlogID From INSERTED
--much more likely to be an insert than delete
--need to run on updates as well, incase an item is marked as inactive
if(@BlogID is null)
Begin
Select @BlogID = BlogID From DELETED
End
Update blog_Config
Set
PostCount = (Select Count(*) From blog_Content Where blog_Content.BlogID = blog_Config.BlogID and PostType = 1 and Active = 1),
CommentCount = (Select Count(*) From blog_Content Where blog_Content.BlogID = blog_Config.BlogID and PostType = 3 and Active = 1),
StoryCount = (Select Count(*) From blog_Content Where blog_Content.BlogID = blog_Config.BlogID and PostType = 2 and Active = 1),
PingTrackCount = (Select Count(*) From blog_Content Where blog_Content.BlogID = blog_Config.BlogID and PostType = 4 and Active = 1)
Where BlogID = @BlogID
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
ScottW在发布的时候忘了加这个触发器了, 在他的blog上也提到了.
为了方便新增用户, 最好给IIS添加一个.*映射. 这个在ReadMe里面讲的很清楚, 按照他说的去做就可以了.
OK, 这时候可以修改blog.config了. 替换哪些HttpHandlers为你要的, 在Handler Patterns.txt里面可以找到. 比如我的就应该用'Multiple Setup. Root Directory.'. 修改DataStoreLocation的值, 这是SQL的连接语句. 然后打开web.config, 根据httpHandlers那项给的提示修改. 我是给IIS添加了*映射的, 所以要把UrlReWriteHandlerFactory项的path改为*. 由于添加了*映射, 也不需要增加demo这个目录, 所以说这样做方便.
这时候你的Blog就可以运行了. 比如我就可以使用http://blog.sunmast.com/ 来测试首页, 用http://blog.sunmast.com/demo/ 来测试demo用户的页面. demo用户的密码为demo(区分大小写的).
这样应该没有问题了, 哪天有时间我想做个安装程序并且发布出来. 这样安装真是太复杂了...
最后,这篇文章很早以前就在我的blog上发布了,可惜没人来看,又老是有人来问我该怎么安装,所以发布在CSDN上,造福大家吧
相关连接:
我的BLOG [url=http://blog.sunmast.com/Sunmast/]http://blog.sunmast.com/Sunmast/
.Text http://scottwater.com/Dottext
Asp.net .Text论坛 http://www.asp.net/Forums/ShowForum.aspx?tabindex=1&ForumID=149