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 IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述