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
相关文章
|
SQL 机器学习/深度学习
DNN(DotNetNuke) Sql Injection 攻击
最近有一些DNN网站报告收到Sql Injection攻击   因为Sql injection 攻击利用的是网站中动态执行的sql语句比如通过字符串连接生成并直接执行的sql语句,或者通过EXEC或sp_execute执行的存储过程。
816 0
|
机器学习/深度学习 数据库 SQL
使用DotNetNuke(DNN) Startkit 4.7(及以上版本)安装无法完成问题的解决方法
最近决定使用DNN Startkit 做些开发,却发现下载DNN 4.8.2 Startkit安装后,生成的网站总是无法完成安装,一到数据库安装那里就停下来,只有进度条滚动,不执行安装的Script。 如图: 几经周折,最终发现自己犯了了一个很愚蠢的错误-没有仔细阅读说明。
665 0
|
机器学习/深度学习 数据库 SQL
使用DotNetNuke(DNN) Startkit 4.7(及以上版本)安装无法完成问题的解决方法
最近决定使用DNN Startkit 做些开发,却发现下载DNN 4.8.2 Startkit安装后,生成的网站总是无法完成安装,一到数据库安装那里就停下来,只有进度条滚动,不执行安装的Script。 如图: 几经周折,最终发现自己犯了了一个很愚蠢的错误-没有仔细阅读说明。
|
机器学习/深度学习 Go 数据安全/隐私保护
忘记DotNetNuke的host密码?-如何恢复丢失的DNN密码
有时候我们会忘记DotNetNuke的host密码,这是一件很头疼的事,这时我们可以通过下面这一段SQL Script把host密码重置为一个已知用户的密码(假设这个已知用户名为m2land)。 原理其实很简单,这段Script会把aspnet_membership表中的"m2land"用户的password和password_salt值拷贝并覆盖host对应的值。
693 0
|
机器学习/深度学习 SEO C#
DotNetNuke(DNN)学习和应用资源合集
在想解决任何问题之前,请看看DNN的官方文档有没有答案。 DNN官方文档:http://jaist.dl.sourceforge.net/sourceforge/dnn/DotNetNuke_4.4.
1872 0
忘记DotNetNuke的host密码?-如何恢复丢失的DNN密码
有时候我们会忘记DotNetNuke的host密码,这是一件很头疼的事,这时我们可以通过下面这一段SQL Script把host密码重置为一个已知用户的密码(假设这个已知用户名为m2land)。 原理其实很简单,这段Script会把aspnet_membership表中的"m2land"用户的password和password_salt值拷贝并覆盖host对应的值。
|
机器学习/深度学习 SEO C#
DotNetNuke(DNN)学习和应用资源合集
在想解决任何问题之前,请看看DNN的官方文档有没有答案。 DNN官方文档:http://jaist.dl.sourceforge.net/sourceforge/dnn/DotNetNuke_4.4.
|
机器学习/深度学习 前端开发 容器
DotNetNuke(DNN)皮肤制作--如何修改DNN中众多的CSS文件
DotNetNuke使用了好几个CSS文件,在什么时候,如何针对不同的需求修改CSS文件让人觉得很难把握,其实只要搞明白了DNN加载各个CSS文件的顺序,再遵循CSS文件生效的优先级就能准确的把握什么时候要修改哪个CSS文件。
|
机器学习/深度学习 .NET 数据库
DotNetNuke(DNN)网站发布、部署、迁移和重建
DotNetNuke(DNN)网站本质上是一个ASP.NET网站,由网站文件(也就是website目录)和数据库组成的,所以,“发布、部署、迁移和重建”实际上也就是把网站文件和数据库文件拷贝到服务器上并修改相应设置的过程。
|
8月前
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
108 0