ASP.NET Core程序的发布
网站发布
- 不能直接把bin/Debug部署到生产环境的服务器上,性能低。应该创建网站的发布版,用【发布】功能。
- 两种部署模式:“框架依赖”和“独立”。两者的优缺点。
- 独立模式为什么要选目标操作系统和CUP类型。
如果你使用 Visual Studio,可以通过以下步骤发布:
在解决方案资源管理器中右键点击项目
选择 “发布”
选择发布目标(文件夹、IIS、Azure 等)我们这里选择使用文件夹的方式发布。
配置发布设置(如目标框架、运行时、是否自包含等)
点击 “发布” 按钮
框架依赖部署(FDD)
特点
依赖共享运行时:应用程序依赖目标环境中已安装的 .NET 运行时(如 .NET 6/7/8)。
体积小:发布包仅包含应用代码和第三方依赖(如 NuGet 包),不包含 .NET 运行时,因此包体积小。
跨平台兼容性:发布包不包含运行时,需确保目标环境的运行时版本与开发环境兼容。
更新便捷:.NET 运行时由操作系统或管理员统一更新,应用无需包含运行时更新。
适用场景
目标环境已预装 .NET 运行时(如服务器、开发机)。
需要频繁更新应用,希望减小发布包体积。
多应用共享同一运行时,节省系统资源。
独立部署(SCD)
特点
包含完整运行时:应用程序包包含 .NET 运行时、框架库和应用代码,不依赖目标环境的运行时。
体积大:发布包包含完整的运行时,体积显著增大(通常几十到上百 MB)。
版本隔离:不同应用可使用不同版本的运行时,互不干扰。
无需预安装运行时:可直接在未安装 .NET 的环境中运行(如客户机、无管理员权限的服务器)。
适用场景
目标环境无法安装或管理 .NET 运行时(如客户机、共享主机)。
需要确保应用使用特定版本的运行时,避免版本冲突。
应用需要在不同版本的运行时环境中保持一致性。
网站的运行
- 在Windows(SandBox)和Linux(VMWare Player)里分别运行网站。
- 如何在生产服务器中部署.NET Core网站。尽管Kestrel已经强大到足以作为一个独立Web服务器被使用了,但是一般仍然不会让Kestrel直接面对终端用户的请求。配置域名证书、记录请求日志、Url重写等由反向代理服务器负责。
- 多种部署模式:K8S+容器(推荐,难度高);Linux+Nginx;云平台;windows+IIS;
网站安全提醒
- 启用https。
- 如果运维人员需要通过远程桌面或者SSH连接到服务器,那么一定要在服务器的防火墙设置只允许运维人员的IP段访问相关端口。
- 严格区分开发环境和生产环境。
- 不要相信客户端请求。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 YOUXIANYU!
评论