DotNetNuke(DNN)网站发布、部署、迁移和重建
DotNetNuke(DNN)网站本质上是一个ASP.NET网站,由网站文件(也就是website目录)和数据库组成的,所以,“发布、部署、迁移和重建”实际上也就是把网站文件和数据库文件拷贝到服务器上并修改相应设置的过程。
对于"发布和部署“,我指的是你开发了一个DNN网站,需要放到租用的虚拟主机或者客户的局域网的服务器里。对于”迁移“,我指的是有时侯你需要把一个DNN站点从一个租用空间搬到另一个租用空间,或者从一个服务器搬到另一个服务器。有一种”迁移“的特殊情况,那就是”重建“,有时你从别人那里接手一个DNN网站,或者你拿到一个DNN网站整站程序,你需要把这个网站重新架起来。
部署到单位内部局域网主机上实际是很简单的,按上述几条进行就可以了。
部署到虚拟主机上会相对麻烦一点,最主要的障碍是虚拟主机给你的自由度更小。很多东西你可能无法直接修改,甚至包括重要的web.config文件。但基本的原理还是一样的,也就是“网站文件和数据库文件拷贝到服务器上并修改相应设置的过程”,你仔细阅读虚拟主机提供商的说明,尽量地修改各种设置。并且可以考虑寻找专门的DNN网站虚拟主机提供商。一定要注意的是第一步,如果你没有添加相应的“别名”,到时候你可能完全无法访问自己发布的网站,因为你不可能跟局域网里的机器一样可以通http://localhost这种方式去访问虚拟主机上的网站,所以一定要先加一个“别名”。
对于"发布和部署“,我指的是你开发了一个DNN网站,需要放到租用的虚拟主机或者客户的局域网的服务器里。对于”迁移“,我指的是有时侯你需要把一个DNN站点从一个租用空间搬到另一个租用空间,或者从一个服务器搬到另一个服务器。有一种”迁移“的特殊情况,那就是”重建“,有时你从别人那里接手一个DNN网站,或者你拿到一个DNN网站整站程序,你需要把这个网站重新架起来。
各自的特点:
发布和部署
- 你需要把代码源文件(如.vb,.cs)去掉
- 你对所有的方面完全了解,并有绝对控制权
迁移
- 源文件已经去掉,或者不用考虑这方面的事情,因为之前已在运行。
- 你了解网站之前的设置情况,包括使用什么模块,有多少子站,子站的别名是什么,数据库连接是什么等等。
重建
- 你对手里的网站完全陌生,不知有多少子站,不知到别名的设置,不知道使用了什么模块,不知道如何连接的数据库。
操作过程:
发布和部署
- 添加一个发布时使用的别名。因为部署到服务器上后,一般访问网站的URL地址会发生变化。比如你在本地一直是用http://localhost调试的,发布后,应该使用http://www.domainname.com访问。因为DNN的“别名”机制,如果你在部署之前没有添加相应的“别名”,那么在部署之后你就没有办法立即用http://www.domainname.com访问到你部署的网站。
- 将网站文件拷贝到服务器上,并在IIS中新建一个网站指向这个目录,设置主机头。注意,不要再把DNN放到虚拟目录下,应该放到网站根目录。
- 把数据库拷贝到数据库服务器上(一般是SQL),你可以使用“dettach"和"attach",使用"backup"和"restore",使用SQL Script直接重建等等方法。
- 修改web.config文件,使其指向发布环境中的数据库。
- 检查IIS的各项设置。并确认ASP.NET的版本正确,DNN 3.x是ASP.NET 1.0,DNN 4.x是ASP.NET 2.0
部署到单位内部局域网主机上实际是很简单的,按上述几条进行就可以了。
部署到虚拟主机上会相对麻烦一点,最主要的障碍是虚拟主机给你的自由度更小。很多东西你可能无法直接修改,甚至包括重要的web.config文件。但基本的原理还是一样的,也就是“网站文件和数据库文件拷贝到服务器上并修改相应设置的过程”,你仔细阅读虚拟主机提供商的说明,尽量地修改各种设置。并且可以考虑寻找专门的DNN网站虚拟主机提供商。一定要注意的是第一步,如果你没有添加相应的“别名”,到时候你可能完全无法访问自己发布的网站,因为你不可能跟局域网里的机器一样可以通http://localhost这种方式去访问虚拟主机上的网站,所以一定要先加一个“别名”。
迁移
迁移相对简单,因为大部分东西都没有变化,按照发布和部署的步骤造作就可以了。重建
因为你完全不了解手里的这个网站,你应该先通过查看数据库中的内容来了解这个网站。- 通过PortalAlias表来了解别名的情况。
分类:
DotNetNuke
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)