asp.net core 程序的部署
2021/4/25 22:55:22
本文主要是介绍asp.net core 程序的部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
ASP.NET Core 应用程序部署
ASP.NET Core 应用程序部署
- 在Windows OS部署
-
- 使用IIS
-
- 发布部署
-
- 应用程序发布说明
- IIS配置说明
- 应用托管模型
-
- 进程内托管模型
- 进程外托管模型
- 使用Kestrel
- 使用HTTP.sys
- 使用Docker
在Windows OS部署
使用IIS
发布部署
- 本机安装IIS服务器,这是必须的
- 发布asp.net Core应用程序
- 部署应用程序到IIS
应用程序发布说明
- VS部署模式支持独立部署及框架依赖部署,若本机已安装.NET Core SDK,我们选择框架依赖部署即可
- 运行文件支持发布为可移植的二进制文件或系统支持的可执行文件,如果部署模式使用框架依赖部署,则运行文件可以发布为可移植的二进制文件
IIS配置说明
- 安装 ASP.NET Core 模块
- 重启 Windows Process Activation Service 服务,或在命令行界面执行以下命令
net stop was /y
net start w3svc
- 将应用程序池的“.NET CLR 版本”设置为“无托管代码”
- 将应用程序池“高级设置”里面的“启用 32 位应用程序”设置为False
这样所有的配置就完成了,试着运行站点看网站是否可以正常运行,详细配置及说明可以看官方文档。
应用托管模型
在Windows上使用IIS托管ASP.NET Core应用程序有两种托管模型:进程内(inprocess)及进程外(OutOfProcess),默认为inprocess
进程内托管模型
说明:使用进程内托管,ASP.NET Core 在和IIS工作进程相同的进程中运行,下图说明了IIS、ASP.NET Core模块和进程内托管的应用之间的关系(摘自官网):
HTTP请求到达IIS后,主要由ASP.NET Core模块接收,然后传递到IIS Http服务器,最后IIS Http服务器会将请求推送到ASP.NET Core中间件管道中。应用的响应再通过IIS Http服务器传递回IIS,再由IIS将响应返回给客户端。
在进程内托管模型中,ASP.NET Core应用程序使用IIS Http服务器。
项目文件配置:<PropertyGroup> <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel> </PropertyGroup>
进程外托管模型
说明:使用进程外托管,ASP.NET Core 的进程与 IIS 工作进程是分开的,下图说明了IIS、ASP.NET Core模块和进程内托管的应用之间的关系(摘自官网):
HTTP请求到达IIS后,主要由ASP.NET Core模块接收,然后将请求转发到Kestrel服务器,最后由Kestrel将请求推送到ASP.NET Core 中间件管道中。应用的响应传递回 IIS,IIS 将响应推送回发起请求的 HTTP 客户端。
在进程外托管模型中,ASP.NET Core应用程序使用Kestrel服务器。
项目文件配置:<PropertyGroup> <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel> </PropertyGroup>
使用Kestrel
默认情况下,ASP.NET Core 项目模板使用 Kestrel。
Kestrel 可单独使用,也可以和反向代理服务器结合使用,如在IIS上部署的进程外托管模型
将应用程序发布后,可以使用命令行工具运行网站dotnet xxx.dll --urls http://0.0.0.0:5000
--urls
参数可以指定url及端口0.0.0.0
表示IPV4地址[::]
表示IPV6地址
这只是一种配置方式,还可以通过环境变量、UserUrls扩展方法等
将Kestrel作为web服务器的时候,可能会需要做一些针对服务器的配置选项,我们可以将配置写在appsettings.json中,然后通过Startup.ConfigureServices
或Program.cs
加载配置
详细配置,参考官方文档
使用HTTP.sys
使用Docker
这篇关于asp.net core 程序的部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具