建議先備份網站,在備份網站上進行更新,更新完成後再用備份網站替換之前的網站。主要步驟如下:
- 備份網站
- 重建備份網站,使之運作
- 在備份網站上進行更新
- 更新完畢後用備份網站替換之前的網站。
假設準備更新的網站在區域網路一台IIS伺服器上,IP位址是159.21.121.15,外界使用"http:
//www.yourdomainname.com"通路,IIS管理器中的網站名稱為“DNNWebsite”,主目錄在"D:\DotNetNuke"上,使用SQL
2000資料庫,資料庫名稱為"WebsiteDNN",資料庫檔案是”D:\Program Files\Microsoft SQL Server\MSSQL\Data\WebsiteDNN_Data.MDF"和“D:\Program Files\Microsoft SQL Server\MSSQL\Data\WebsiteDNN_Log.MDF"。
1、備份網站
備份隻需要備份網站檔案目錄和資料庫檔案即可。
- 為了友善我們通路之後重建的備份網站,我們須要在備份之前為網站添加一個别名,這裡我添加一個"http://159.21.121.15"的别名
- 将"D:\DotNetNuke" 拷貝到"E:\WebsietBackup\DotNetNuke"
-
停止SQL服務,将”D:\Program Files\Microsoft SQL Server\MSSQL\Data\WebsiteDNN_Data.MDF"和
“D:\Program Files\Microsoft SQL Server\MSSQL\Data\WebsiteDNN_Log.MDF"這兩個檔案拷貝到”E:\WebsiteBackup\Database\",保持原檔案名即可。
到這裡就備份完畢了。
2、重建備份網站,使之運作
因為原網站還在,是以我們直接在備份的網站上操作。
-
修改"E:\WebsietBackup\DotNetNuke\"目錄的權限設定,為NETWORK
SERVICE帳戶添加完全控制權限。注:在Windows 2000/IIS5 Window XP Pro裡面是 {Server}"ASPNET
帳戶,在Windows 2003/IIS6 裡面是 NT AUTHORITY"NETWORK SERVICE帳戶。
- 将"E: \WebsiteBackup\Database\"裡的資料庫檔案“附加”為一個新的資料庫,名為"DNNWebstieUpgrade",如果之前有過專門的資料庫使用者設定,修改"DNNWebsiteUpgrade"資料庫安全設定,使之跟原網站的安全設定一樣即可。
- 修改"E:\WebsiteBackup\DotNetNuke\"中的Web.config檔案,主要是修改資料庫連接配接部份,如果安全設定一樣,你僅僅隻須要把資料庫的名字從"DNNWebsite"修改為"DNNWebsiteUpgrade"。
<!-- Connection String for SQL Server 2000/2005 -->
<add name="SiteSqlServer"
connectionString="Server=(local);Database=WebsiteDNNWebsiteDNNUpgrade;uid=WebDNNAdmin;pwd=ourpassword;"
providerName="System.Data.SqlClient" />
- 在IIS中建立一個“網站”,命名為"DNNWebsiteUpgrade",将主目錄設定為"E:\WebsiteBackup\DotNetNuke\",設定主機頭為"159.21.121.15",并且不要忘記把ASP.NET的版本設定為2.0
- 現在,打開IE,在位址欄中輸入"http://159.21.121.15"你就應該能通路到重建的備份網站了。
3、在備份網站上進行更新
下面我們就要在重建的備份網站上進行更新了。
- 首先我們先從www.dotnetnuke.com的網站上下載下傳最新的DNN包,我使用的是:DotNetNuke_04.06.00_Install.zip
- 備份"E:\WebsiteBackup\DotNetNuke\"下面的web.config檔案為webBackup.config,直接備份在目前目錄下即可。
- 将DotNetNuke_04.06.00_Install.zip解壓到"E:\WebsiteBackup\DotNetNuke\"目錄,使其覆寫之前的檔案。到到這裡web.config檔案已經被安裝包裡的web.config替換掉了。
- 打開web.config檔案,還原之前的設定,主要是資料庫連接配接,語言區域和Machine Key三部分,其中Machine Key一定要記得還原,不然更新之後的網站所有之前的使用者都将無法登入
資料庫部分:
先注釋掉預設的SQL 2005 Express 設定,把下面這一部分:
<!-- Connection String for SQL Server 2005 Express -->
<add
name="SiteSqlServer"
connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Database.mdf;"
providerName="System.Data.SqlClient" />
修改為:
<!-- Connection String for SQL Server 2005 Express
providerName="System.Data.SqlClient" />-->
接着去掉與SQL Server 2000/2005 标準版的注釋
<!-- Connection String for SQL Server 2000/2005
connectionString="Server=(local);Database=DotNetNuke;uid=;pwd=;"
-->
在webBackup.config檔案中找到connectionString的值,替換原始設定。如下:
<add
name="SiteSqlServer"
connectionString="Server=(local);Database=WebsiteDNNUpgrade;uid=WebDNNAdmin;pwd=yourpassword;"
providerName="System.Data.SqlClient" />
還有一個SQL連接配接設定塊,這是為了保持相容性設定的,也要修改一下,
<!-- Connection String for SQL Server 2005 Express - kept for backwards compatability - legacy modules -->
<add key="SiteSqlServer" value="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Database.mdf;"/>
<!-- Connection String for SQL Server 2005 Express - kept for backwards compatability - legacy modules
<add key="SiteSqlServer" value="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Database.mdf;"/> -->
<!-- Connection String for SQL Server 2000/2005 - kept for backwards compatability - legacy modules
<add key="SiteSqlServer" value="Server=(local);Database=DotNetNuke;uid=;pwd=;"/>
-->
<!-- Connection String for SQL Server 2000/2005 - kept for backwards compatability - legacy modules-->
<add key="SiteSqlServer" value="Server=(local);Database=WebsiteDNNUpgrade;uid=WebDNNAdmin;pwd=yourpassword;"/>
語言區域部分:修改這一部分
<globalization
culture="en-US"
uiCulture="en"
requestEncoding="UTF-8"
responseEncoding="UTF-8"
fileEncoding="UTF-8"/>
為:
<globalization
culture="zh-CN"
uiCulture="zh-CN"
requestEncoding="UTF-8"
responseEncoding="UTF-8"
fileEncoding="UTF-8" />
最重要的部分,MachineKey,找到這一部分:
<machineKey
validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902"
decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC"
decryption="3DES"
validation="SHA1"/>
從備份的webBackup.config檔案找到這一部分,拷貝validationgKey和decryptionKey的值,替換上面的原始設定。一定要記得做這一步!!
到這裡,web.config檔案的修改完畢,可以開始激動人心的更新過程了。
打開IE,輸入"http://159.21.121.15",如果之前的步驟設定正确,你就能看如下的更新資訊:
更新完成資訊:

更新完成資訊
Upgrading DotNetNuke
Current Assembly Version: 04.06.00
Current Database Version: 04.03.07
Upgrade Status Report
00:00:00.046 - Upgrading to Version: 4.6.0
00:00:00.109 - Executing Script: 04.04.00.SqlDataProvider Error! (see 04.04.00.log for more information)
00:00:00.906 - Executing Script: 04.04.01.SqlDataProvider Success
00:00:00.937 - Executing Script: 04.05.00.SqlDataProvider Success
00:00:01.609 - Executing Script: 04.05.01.SqlDataProvider Success
00:00:01.812 - Executing Script: 04.05.02.SqlDataProvider Success
00:00:02.734 - Executing Script: 04.05.03.SqlDataProvider Success
00:00:03.171 - Executing Script: 04.05.04.SqlDataProvider Success
00:00:03.218 - Executing Script: 04.05.05.SqlDataProvider Success
00:00:03.218 - Executing Script: 04.06.00.SqlDataProvider Success
00:00:03.812 - Performing General Upgrades
00:00:05.765 - Installing Module File Adsense_01.00.01_Install: Success
00:00:06.296 - Installing Module File HTML_04.06.00_Install: Success
00:00:06.906 - Installing Module File Links_03.03.07_Install: Success
00:00:07.343 - Installing Package File LiveID_01.00.00_Install: Success
00:00:07.890 - Installing Package File OpenID_01.00.00_Install: Success
Upgrade Complete
Click Here To Access Your Portal
4、更新完畢後用備份網站替換之前的網站。
更新完成之後,就可以用http://159.21.121.15通路更新成功後的網站了,仔細檢查一下你使用的一些第三方子產品在新版本下是不是可以正常運作,之前的皮膚是不是表現正常,如果一切完美,就可以用更新完後的網站代替之前的網站了。
這個步驟相對簡單,我就不詳細講了,主要是:
- 删除"D:\DotNetNuke"目錄,把"E:\WebsiteBackup\DotNetNuke" 拷回D:盤,記得修改權限設定,并且在IIS中也重設一下主目錄。注:如果删除時說目錄正在使用,請停止IIS,并殺掉程序再試。
- 資料庫檔案同樣拷回原位,删除之前資料庫,重新附加為WebsiteDNN,重設安全設定。
- 把web.config檔案中的資料庫連接配接設定修改為連接配接DNNWebsite。
- 用iisreset指令重新開機一下IIS。