建议先备份网站,在备份网站上进行升级,升级完成后再用备份网站替换之前的网站。主要步骤如下:
- 备份网站
- 重建备份网站,使之运行
- 在备份网站上进行升级
- 升级完毕后用备份网站替换之前的网站。
假设准备升级的网站在局域网一台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=
WebsiteDNN
WebsiteDNNUpgrade;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
<add
name="SiteSqlServer"
connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Database.mdf;"
providerName="System.Data.SqlClient" />
-->
接着去掉与SQL Server 2000/2005 标准版的注释
<!--
Connection String for SQL Server 2000/2005
<add
name="SiteSqlServer"
connectionString="Server=(local);Database=DotNetNuke;uid=;pwd=;"
providerName="System.Data.SqlClient" />
-->
在webBackup.config文件中找到connectionString的值,替换原始设置。如下:
<!--
Connection String for SQL Server 2000/2005
-->
<
add
name
="SiteSqlServer"
connectionString
="Server=(local);Database=WebsiteDNNUpgrade;uid=WebDNNAdmin;pwd=yourpassword;"
providerName
="System.Data.SqlClient"
/>
还有一个SQL连接设置块,这是为了保持兼容性设置的,也要修改一下, 先注释掉默认的SQL 2005 Express 设置,把下面这一部分:
<!--
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;"/>
-->
接着去掉与SQL Server 2000/2005 标准版的注释
<!--
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。