首先得到源代碼(這個看其他人的文章好了) 源代碼的結(jié)構(gòu)中有一個DottextWeb的目錄就是web目錄了。 在iis中添加一個虛擬目錄,比如叫"blog",目錄為DottextWeb.然后在DotText.sln中修改web project的屬性以保證你能打開這個Project(如果這樣修改了的話 將
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DottextWeb", "http://localhost/DottextWeb/DottextWeb.csproj", "{D5711AB8-BE34-4D64-91A2-B68F310CA995}" ProjectSection(ProjectDependencies) = postProject EndProjectSection ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject
改為
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DottextWeb", "http://localhost/blog/DottextWeb.csproj", "{D5711AB8-BE34-4D64-91A2-B68F310CA995}" ProjectSection(ProjectDependencies) = postProject EndProjectSection ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject
馬上用vs.net打開這個sln,全部重編譯一下。(至少工程要能搞頂是吧)
下一步是創(chuàng)建數(shù)據(jù)庫 先自己創(chuàng)建一個數(shù)據(jù)庫。比如說BlogDB。然后準(zhǔn)備在這個數(shù)據(jù)庫上執(zhí)行下面的Sql腳本 DoTText\OtherStuff\SQL Scripts 目錄下面有3個sql文件 DottextSetup_*** (后面的是版本號)。這個先執(zhí)行,用于創(chuàng)建數(shù)據(jù)庫中的表結(jié)構(gòu) Keywords.sql 然后執(zhí)行這個 DottextSprocs.sql 最后執(zhí)行這個,創(chuàng)建存儲過程。不過現(xiàn)在先不要執(zhí)行。先看下面的2個bug
***fix bug1*** 原作者遺漏了一個觸發(fā)器沒創(chuàng)建(有的版本沒創(chuàng)建。。這種開源項目,每天都在更新。。) 執(zhí)行下面的sql創(chuàng)建這個觸發(fā)器 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
***fix bug2*** 這個文件中有個叫DNW_GetRecentPosts存儲過程, 把里面and Blog_content.ID <> 50拿掉, 不然ID為50的Blogger發(fā)的blog永遠(yuǎn)不會在首頁顯示出來.
接下來的工作,你要需要確定你是怎么使用這個blog. .Text支持3種方式。單用戶 物理多用戶 和 虛擬多用戶 單用戶我們肯定是不會使用的。這里首先要談下物理多用戶和虛擬多用戶的區(qū)別。.Text的blog在訪問某個人的blog時看起來是這樣的 www.ncuhome.com/blog/xxx/ xxx為用戶名。 根據(jù)一般的經(jīng)驗。在blog目錄下必須存在一個xxx的目錄或則虛擬目錄。用戶少的時候,沒問題。但是用戶一多就麻煩了。于是需要通過設(shè)置iis來達(dá)到將訪問控制全部交給.net的目的 選擇站點的屬性——> home Directory --> config ,add 一個后綴名為*的處理方式(連文件夾都包含過去了),設(shè)置處理的isapi為 "P:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll" 在2003下則只要insert這個isapi就可以了。(我在xp專業(yè)版上加不了..痛苦) 當(dāng)然不要忘記在iis中添加默認(rèn)頁面default.aspx
這些都完成后就可以添加一個用戶測試了,執(zhí)行下面在Readme中帶的sql INSERT INTO [blog_Config] ( [UserName], [Password], [Email], [Title], [SubTitle], [Skin], [Host], [Author], [TimeZone], [IsActive], [Language], [ItemCount], [AllowServiceAccess], [LastUpdated], [News], [SecondaryCss], [Application] ) VALUES ( 'aliy', 'aliy', 'joy@joycode.com','Aliy', 'Aliy's blog', 'marvin3-red', 'blog.joycode.com','aliy',0, 1,'zh-CHS', 15, 1,'7/28/2003', null, null, 'aliy' )
需要注意的是Host字段。必須與在瀏覽器中輸入的完全相同。比如你有個站點的host是ncuhome.com,ip是210.35.247.34 那么當(dāng)你使用http://ncuhome.com/blog/waterflier/ 可以訪問到用戶waterflier的blog,但是使用http://210.35.247.34/blog/waterflier/就訪問不到了。這點就要特別注意了。
|