一文讲通.NET Core部署到Windows IIS最全解决方案

回顾以前的ASP.NET的经典托管linux

image-20210126160117728

在经典ASP.NET应用程序中,全部一切都托管在IIS工做进程中(w3wp.exe),这也被称为IIS应用程序池。ASP.NET程序被托管在应用程序池中,而且被按照IIS内建的ASP.NET托管特性所实例化。当请求从http.sys传入到ASP.NET应用程序管道时,本地运行时管理器会实例化一个表明应用程序的.NET运行时,同时引入HttpRuntime对象用来处理这个请求。来自http.sys的请求被派送到对应的应用程序池和HttpRuntime实例的托管站点。windows

image-20210126160151908

.net coreasp.net发布有点不同,ASP.NET Core再也不由IIS工做进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是做为反向代理的角色转发请求到Kestrel不一样端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑以后再将HTTP响应数据从新回写到IIS中,最终转达到不一样的客户端(浏览器,APP,客户端等)。浏览器

若是你的应用只接收来自内部网络的请求,你能够只使用Kestrel自己。服务器

asp.netcore application

若是你将你的应用部署在公共网络上,咱们建议你使用IIS,Nginx或者Apache做为反向代理服务器。一个反向代理服务器接收来自网络的HTTP请求而且在通过一些初步处理后将请求传递到Kestrel服务器。由于Kestrel不支持在多进程间分享同一端口,因此应用并不能直接和Kestrel合做。当你在某个端口上配置Kestrel运行侦听时,不算主机头如何标识,Kestrel会为该端口处理全部的流量。反向代理能够为多个应用共享惟一端口并将流量发送给Kestrel。微信

image-20210125165051150

AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS以后便当即由它转发,并迅速重定向到ASP.NET Core项目中,这时候咱们无需设置应用程序池来托管咱们的代码,它只负责转发请求而已。网络

一、检查是否安装了IIS

在浏览器中输入:http://localhost:若是获得以下"Internet information Services"欢迎页面,则IIS已经安装且运行正常;若是获得“server not found"(找不到服务器)则IIS未安装或已经中止运行app

image-20210125165102931

二、若没有安装IIS

2.一、打开控制面板——程序

程序

2.二、点击“启用或关闭Windows功能”

启用或关闭Windows功能

2.三、点击“Internet Information Services”,而后在打开的列表中勾选你须要的功能,点击肯定

Internet Information Services

2.四、接着windows会自动下载并安装您勾选的系统,耐心等待完成

安装iis

当出现“Windows已完成请求的更改”的时候就说明完成了,点击当即从新启动按钮。框架

电脑重启后,在IE浏览器地址栏中输入localhost,若是能正常打开就说明iis安装成功了asp.net

iis安装成功

三、IIS安装完成,安装AspNetCoreModule

IIS和ASP.NET Core 之间的对接由AspNetCoreModule提供网站

一、安装.NET Core Windows Server Hosting

地址:

https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer

二、安装完成后,打开以下页面,双击IIS管理器

双击IIS管理器

三、选择左侧树的根目录后,在右侧选择模块,以下图所示。

模块

四、安装完成后再模块中会显示AspNetCoreModuleV2模块

AspNetCoreModuleV2

四、建立网站

添加网站:

网站—>右键添加网站

添加网站

在上图中,咱们建立了一个网站名为:RDICoreWeb50,并指定了到咱们网站的发布路径。

这儿最重要的一步就是要设置网站的“应用程序池”。

在IIS左侧选择“应用程序池”,在右则能够看到咱们网站使用的“RDICoreWeb50”,双击打开,并作如何配置: 应用程序池设置

五、VS2019发布

Vs2019发布咱们能够直接发布到IIS,也能够发布到本地目录,再用IIS的配置指向该目录。

5.一、发布到IIS

一、右键项目名称,点击发布

vs2019发布项目

二、选择左路侧的发布,单击“启动”。

启动

三、选择Web服务器。

选择Web服务器

四、单击“下一步”,选择Web部署。

Web部署

五、单击“下一步”,配置Web服务器链接相关信息。

iis链接设置

六、以下界面即添加配置文件成功。

发布信息

上图咱们能够发布到IIS,也能够发布到本地目录下,再用IIS指向该目录。

5.二、经过命令行发布应用程序

在程序包管理控制台输入dotnet publish --output " E:\WebSiteForIIS\RDICoreWeb50"回车(路径和建立网站的路径相同)

经过命令行发布应用程序

5.三、发布到本地文件夹,再用IIS指定发布的文件夹(推荐)

在发布页,咱们选择“文件夹”便可,以下图所示。

发布到本地文件夹

单击“下一步”,设置须要发布的本地文件夹,以下图所示。

发布的本地文件夹

单击完成后,回到主界面,再单击“发布”按钮,便可发布到咱们设置的目录,如这儿设置为:E:\WebSiteForIIS\RDICoreWeb50

发布

在上图中单击“配置”,以下图所示。

发布设置

5.二、预览发布效果

发布成功后,在IIS把目录指定到咱们的发布目录便可,以下图所示。

预览发布效果1

发布成功后,浏览发布的程序,以下图所示。

发布效果-登陆界面

发布效果-主界面

参考文章:

.NET Core部署到linux(CentOS)最全解决方案,常规篇

.NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)

.NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)

.NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

一网打尽,一文讲通虚拟机VirtualBox及Linux使用

RDIFramework.NET敏捷开发框架助力企业BPM业务流程系统的开发与落地

RDIFramework.NET敏捷开发框架 ━ 工做流程组件介绍

经常使用linux命令,开发必备

全新跨平台版本.NET敏捷开发框架-RDIFramework.NET5.0震撼发布


一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,你们能够经过下面的地址了解详情。

RDIFramework.NET官方网站:http://www.rdiframework.net/

RDIFramework.NET官方博客:http://blog.rdiframework.net/

特别说明,框架相关的技术文章请以官方网站为准,欢迎你们收藏!

RDIFramework.NET框架由海南国思软件科技有限公司专业团队长期打造、一直在更新、一直在升级,请放心使用!

欢迎关注RDIFramework.NET框架官方微信公众号(微信号:guosisoft),及时了解最新动态。

使用微信扫描二维码当即关注
微信号:guosisoft

相关文章
相关标签/搜索