.net core有三种部署方式
依赖框架部署FDD、独立部署SCD、依赖框架的可执行文件FDE
1.依赖框架部署FDD==>使用场景较多
依赖系统已安装的.net core库(运行时,SDK),只包含自己的代码和第三方的依赖项。
包含.dll文件
操作步骤:
第一步,选择程序,右键发布,选择文件发布
第二步:更多操作/编辑
优点:
不必预先定义应用运行的目标操作系统,生成的可执行文件和库,是通用的PE文件格式,.net core都可执行,
部署包比较小,自己的代码和第三方的依赖项、降低磁盘空间、如果运行时更新--只需更新操作系统
缺点:
系统上的.net core版本必须和应用目标的.net core版本一样或高于
2.独立部署SCD==>单独、独立
不依赖系统的.net core,自己的代码和第三方依赖项,还包含.net core库,独立,同时还包括一个可执行文件.exe
优点:
可以单独控制与应用一起部署的.net core版本
可以保证应用是能够运行的
缺点:
不可移植,必须选择应用的目标系统
部署包比较大
注:不同版本.net core对系统有要求,win10一般都支持
3.依赖框架的可执行文件FDE==>
针对系统优化,一般应用不多
注:
部署到IIS,有两种方式
1.进程内托管
进程管理器(IIS、Windows服务):收到请求的时候启用应用,并且在应用发生故障的时候负责重启。
2.进程外托管
通过反向代理将请求转发给应用
注:有什么区别?
进程内比进程外性能要高,进程外,多了一层转发,环回适配器(网络接口,用于将传出的网络流程返回给同一个计算机,Kestrel,这里也有性能的损失);
Kestrel功能比较弱,不应该直接把Kestrel暴露出去
NGINX只有进程外托管,代理服务器
发布后会生成Web.config
1 2 3 4 5 6 7 8 9 10 11 | <?xml version= "1.0" encoding= "utf-8" ?> <configuration> <location path= "." inheritInChildApplications= "false" > <system.webServer> <handlers> <add name= "aspNetCore" path= "*" verb= "*" modules= "AspNetCoreModuleV2" resourceType= "Unspecified" /> </handlers> <aspNetCore processPath= "dotnet" arguments= ".\WebApplication1.dll" stdoutLogEnabled= "false" stdoutLogFile= ".\logs\stdout" hostingModel= "inprocess" /> </system.webServer> </location> </configuration> |
hostingModel——设置部署到IIS方式:
1.hostingModel="inprocess" ——启用IIS
2.hostingModel="outofprocess"——启用Kestrel
部署前更改部署IIS方式
选择项目双击并添加配置项,如下图所示:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)