.net core 实际上是自宿主性质的web应用程序,而再也不是web网站,因此.net core是能够直接单独做为系统服务部署。可是实际状况中,为了同个一个端口能支持多个web应用和统一管理,仍是应该与某个服务器整合,好比iis,Jexus。因此.net core 再也不是由iis工做进程进行托管,而是使用自托管Web服务器(Kestrel)。iis则是做为反向代理的角色,将请求转发到Kestrel。在这里面最重要的角色即是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS以后便当即由它转发,并迅速重定向到ASP.NET Core项目中,因此这时候咱们无需设置应用程序池来托管咱们的代码,它只负责转发请求而已。web
部署以前要确保你的IIS上已经安装了AspNetCoreModule托管模块,若是没有的话,点击https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?tabs=aspnetcore2x根据core版本,选择相应包下载安装.服务器
发布程序,并部署网站,这一步和传统web网站没有什么不一样。网站
设置应用程序池的.NET CLR版本为“无托管代码”,由于刚才也说了,IIS是做为一个反向代理的角色,并不须要它来托管代码spa
(PS 图片借用园友图,侵删).net
具体信息可参考官方文档 https://docs.microsoft.com/en-us/aspnet/core/publishing/iis