DotNetNuke(DNN)升级攻略(DNN 4.3.7至DNN 4.6.0)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 建议先备份网站,在备份网站上进行升级,升级完成后再用备份网站替换之前的网站。主要步骤如下: 备份网站 重建备份网站,使之运行 在备份网站上进行升级 升级完毕后用备份网站替换之前的网站。
建议先备份网站,在备份网站上进行升级,升级完成后再用备份网站替换之前的网站。主要步骤如下:
  1. 备份网站
  2. 重建备份网站,使之运行
  3. 在备份网站上进行升级
  4. 升级完毕后用备份网站替换之前的网站。
假设准备升级的网站在局域网一台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 
    <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。


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
机器学习/深度学习
DotNetNuke(DNN)如何升级到DNN 4.9.3
从http;//www.codeplex.com/DotNetNuke上下载 DotNetNuke_Community_04.09.03_Upgrade.zip 包。   如果你使用的是租用的服务器,在升级之前,在网站的根目录放置一个app_offline.htm文件,这样你就可以屏蔽升级时一切对网站的访问,从而保证在任何时候都可以升级。
622 0
|
机器学习/深度学习 安全
DNN发邮件通知4.8.2有漏洞,最好升级到新版本
DNN发邮件通知4.8.2有漏洞,最好升级到新版本。 原文如下: Hello there, I would like to inform you about critical security problems with previous releases of DotNetNuke.
669 0
|
机器学习/深度学习 安全
DNN发邮件通知4.8.2有漏洞,最好升级到新版本
DNN发邮件通知4.8.2有漏洞,最好升级到新版本。 原文如下: Hello there, I would like to inform you about critical security problems with previous releases of DotNetNuke.
|
6月前
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
来自OpenCv的DNN模块助力图像分类任务
来自OpenCv的DNN模块助力图像分类任务
133 0
来自OpenCv的DNN模块助力图像分类任务
|
机器学习/深度学习 数据库 SQL
|
机器学习/深度学习
DNN 模块MVP 模式学习中的一些问题
为了让View部分可以测试,我们使用interface来分离View和业务逻辑的耦合。 我的问题是: Q:对于在aspx.design.cs中声明的控件,我们也需要在interface中声明吗?如果要声明,那么在aspx.design.cs中的控件声明是不是就是interface的实现? 我们不能在interface直接声明跟aspx.design.cs控件同名的变量,我们应该认为aspx.design.cs中的控件就是view的一部分,我们无法控制。
478 0
|
机器学习/深度学习 前端开发
介绍一些免费的DNN模块
网址:http://oliverhine.com/DotNetNuke.aspx Administration Advanced Control Panel Free fully featured ajax enabled control panel replacement for Dot...
820 0
|
机器学习/深度学习
如何使用NAnt 自动打包DNN模块 之一
一、安装NAnt 每次开发完毕一个DNN模块的版本,打包DNN模块是一件很繁琐的事情。更重要的是,为每一个发布的版本做一个安装包如果用手工管理和容易出错。这里介绍一下如何使用NAnt自动打包模块。 首先需要下载NAnt,http://sourceforge.net/projects/nant/ 下载之后解压这个ZIP包 解压之后的目录重名名为NAnt,拷贝到c:下面。
943 0
|
机器学习/深度学习 SEO
介绍几个DNN SEO模块,可免费试用的
iFinity Url Master - Get the best SEO results by taking control of your DNN urls iFinity Tagger - Tag your DNN content and create specific, target...
609 0