回顾之前的http://ASP.NET的经典托管
![](https://pic2.zhimg.com/80/v2-f3cfce41935cae6446434d064f4fc349_720w.jpg)
在经典http://ASP.NET应用程序中,所有一切都托管在IIS工作进程中(w3wp.exe),这也被称为IIS应用程序池。http://ASP.NET程序被托管在应用程序池中,并且被按照IIS内建的http://ASP.NET托管特性所实例化。当请求从http.sys传入到http://ASP.NET应用程序管道时,本地运行时管理器会实例化一个代表应用程序的.NET运行时,同时引入HttpRuntime对象用来处理这个请求。来自http.sys的请求被派送到对应的应用程序池和HttpRuntime实例的托管站点。
![](https://pic1.zhimg.com/80/v2-e1d09f95cf323cbb11251e8fbeade9f0_720w.jpg)
.net core与http://asp.net发布有点不一样,http://ASP.NET Core不再由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的http://ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。
如果你的应用只接收来自内部网络的请求,你可以只使用Kestrel本身。
![](https://pic4.zhimg.com/80/v2-47c507d7861a05884c482942dc80ce77_720w.jpg)
如果你将你的应用部署在公共网络上,我们建议你使用IIS,Nginx或者Apache作为反向代理服务器。一个反向代理服务器接收来自网络的HTTP请求并且在经过一些初步处理后将请求传递到Kestrel服务器。因为Kestrel不支持在多进程间分享同一端口,所以应用并不能直接和Kestrel合作。当你在某个端口上配置Kestrel运行侦听时,不算主机头如何标识,Kestrel会为该端口处理所有的流量。反向代理可以为多个应用共享唯一端口并将流量发送给Kestrel。
![](https://pic3.zhimg.com/80/v2-b5aad92bdcdd8a2bdd2b908211fdf9ca_720w.jpg)
AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到http://ASP.NET Core项目中,这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已。
1、检查是否安装了IIS
在浏览器中输入:http://localhost:如果得到如下"Internet information Services"欢迎页面,则IIS已经安装且运行正常;如果得到“server not found"(找不到服务器)则IIS未安装或已经停止运行
![](https://pic3.zhimg.com/80/v2-2cb0f232de93ca4a0b672146e74f3466_720w.jpg)
2、若没有安装IIS
2.1、打开控制面板——程序
![](https://pic4.zhimg.com/80/v2-47728e9af56f85e04e39124bb64c64bf_720w.jpg)
2.2、点击“启用或关闭Windows功能”
![](https://pic2.zhimg.com/80/v2-4b641f8541197d45e9244823064d0c41_720w.jpg)
2.3、点击“Internet Information Services”,然后在打开的列表中勾选你需要的功能,点击确定
![](https://pic2.zhimg.com/80/v2-996f921022d53e9a0f2037fe65702e79_720w.jpg)
2.4、接着windows会自动下载并安装您勾选的系统,耐心等待完成
![](https://pic2.zhimg.com/80/v2-3db4be64acde43f2349c859645e37fed_720w.jpg)
当出现“Windows已完成请求的更改”的时候就说明完成了,点击立即重新启动按钮。
电脑重启后,在IE浏览器地址栏中输入localhost,如果能正常打开就说明iis安装成功了
![](https://pic3.zhimg.com/80/v2-2cb0f232de93ca4a0b672146e74f3466_720w.jpg)
3、IIS安装完成,安装AspNetCoreModule
IIS和http://ASP.NET Core 之间的对接由AspNetCoreModule提供
1、安装.NET Core Windows Server Hosting
地址:
https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer
2、安装完成后,打开如下页面,双击IIS管理器
![](https://pic1.zhimg.com/80/v2-6c3d0e07ca18e7476afd7bb348986dc0_720w.jpg)
3、选择左侧树的根目录后,在右侧选择模块,如下图所示。
![](https://pic4.zhimg.com/80/v2-40d19888424a1308729ab1c8c86e5edf_720w.jpg)
4、安装完成后再模块中会显示AspNetCoreModuleV2模块
![](https://pic1.zhimg.com/80/v2-9b959f7b430a47522c2ec81b2489a114_720w.jpg)
4、创建网站
添加网站:
网站—>右键添加网站
![](https://pic4.zhimg.com/80/v2-6ec0dc7959d43270fda2f83793911d0f_720w.jpg)
在上图中,我们创建了一个网站名为:RDICoreWeb50,并指定了到我们网站的发布路径。
这儿最重要的一步就是要设置网站的“应用程序池”。
在IIS左侧选择“应用程序池”,在右则可以看到我们网站使用的“RDICoreWeb50”,双击打开,并做如何配置:
![](https://pic3.zhimg.com/80/v2-1cb0b4619e7867689f24a577950c6e9a_720w.jpg)
5、VS2019发布
Vs2019发布我们可以直接发布到IIS,也可以发布到本地目录,再用IIS的配置指向该目录。
5.1、发布到IIS
1、右键项目名称,点击发布
![](https://pic4.zhimg.com/80/v2-988aca414a042260e753e823b883c67f_720w.jpg)
2、选择左路侧的发布,单击“启动”。
![](https://pic1.zhimg.com/80/v2-55392bc86b6d0a41b9f210497f32a418_720w.jpg)
3、选择Web服务器。
![](https://pic1.zhimg.com/80/v2-dffeea2dd1c0a4e9aeaf558b2ff37c40_720w.jpg)
4、单击“下一步”,选择Web部署。
![](https://pic4.zhimg.com/80/v2-d497ba63930ff1b6ac97c672e81ebf7f_720w.jpg)
5、单击“下一步”,配置Web服务器连接相关信息。
![](https://pic3.zhimg.com/80/v2-acb8f66015bc0567ce8530a789dda6b6_720w.jpg)
6、如下界面即添加配置文件成功。
![](https://pic4.zhimg.com/80/v2-87b4f254ff408b8a634c7ea869dc8d8f_720w.jpg)
上图我们可以发布到IIS,也可以发布到本地目录下,再用IIS指向该目录。
5.2、通过命令行发布应用程序
在程序包管理控制台输入dotnet publish --output " E:\WebSiteForIIS\RDICoreWeb50"回车(路径和创建网站的路径相同)
![](https://pic4.zhimg.com/80/v2-996ffe0a0eddebe8154baf779d23842f_720w.jpg)
5.3、发布到本地文件夹,再用IIS指定发布的文件夹(推荐)
在发布页,我们选择“文件夹”即可,如下图所示。
![](https://pic1.zhimg.com/80/v2-38b344e93874b7b575105aaa7afc0028_720w.jpg)
单击“下一步”,设置需要发布的本地文件夹,如下图所示。
![](https://pic1.zhimg.com/80/v2-c0f06ca5dc87f4eacbb8cf5348ac7bd0_720w.jpg)
单击完成后,回到主界面,再单击“发布”按钮,即可发布到我们设置的目录,如这儿设置为:E:\WebSiteForIIS\RDICoreWeb50
![](https://pic2.zhimg.com/80/v2-30900a4b734eb53dfdcf22478e793f59_720w.jpg)
在上图中单击“配置”,如下图所示。
![](https://pic2.zhimg.com/80/v2-55d3fdee60614572e961b7c9b0928a7d_720w.jpg)
5.2、预览发布效果
发布成功后,在IIS把目录指定到我们的发布目录即可,如下图所示。
![](https://pic3.zhimg.com/80/v2-b39d190a924535b9188331ac1dc8c5e6_720w.jpg)
发布成功后,浏览发布的程序,如下图所示。
![](https://pic3.zhimg.com/80/v2-b11ebdf34500ea3aae9fbf87f291005a_720w.jpg)
![](https://pic3.zhimg.com/80/v2-8846cde24bb6c48b8a83f6956e1f595a_720w.jpg)
参考文章:
一路走来数个年头,感谢http://RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。
http://RDIFramework.NET官方网站:
http://RDIFramework.NET官方博客:
特别说明,框架相关的技术文章请以官方网站为准,欢迎大家收藏!
http://RDIFramework.NET框架由海南国思软件科技有限公司专业团队长期打造、一直在更新、一直在升级,请放心使用!
欢迎关注http://RDIFramework.NET框架官方微信公众号(微信号:guosisoft),及时了解最新动态。
使用微信扫描二维码立即关注
![](https://pic4.zhimg.com/80/v2-e91ee2bbe339896a6577fb161b7fa8df_720w.jpg)